£1.00
FROM YOUR C64
WIN A VIDEO
DIGITISER
WITH NEXUS
FUJI HUM mm-!
MD2D
o-
5q,
cm it crwm
jri.il
DISK FILING FOR YOUR C12i
ANTICS
ON YOUR CI 6 Ok
PLUS/A
C128 ASSEMBLER
GET YOUR NAME ON THE
[= Fj" [J [=
i — (r^i
If you have ever bought another golf
simulator - shoot yourself!
If you are ever considering it -
save yourself a bullet!
ZZAP64
Quite honestly, leaderboard makes
all other golf simulations look clumsy
and antiquated in comparison.
ZZAP64
This is the sports simulation of the
year - if not the decade!
ZZAP64
And swing your way to a record round
Now you can become a golf pro and experience the thrill ol
having your name up on the "Leaderboard".
With this amazingly realistic simulation you get a true
perspective view of your golf game.
As you ptay on different 18 hole courses on
levels varying from amateur to touring professional you'll
need skill concentration and control to come in under par.
LcnocRBonno
• COLT *
^o._Li-i^r.':ij;:.: irj
_ •
TEE SHOT
m i
DM ■
r i
■in
US, At
IP
Features:
• Choice of club, distance, type of
shot (hook, slice, putting) and more
Realistic Sound
• Practice Driving Range
Joystick Controlled
Multiple 18 Hole Golf Courses
• Automatic Scoring
APPROACH SHOT PUTTING
U. S. Gold, Unit 10. The Parkway Industrial Centre, Heneage Street, BIRMINGHAM B7 4LY. Tel. No. 021 3593020
JULY 1986
VOLUME 2
NUMBER 10
Editor:
Stuart Cooke
Assistant Editor:
Mane Curry
Advertisement Manager
John McGarry
Advertisement Copy
Control:
Laura Champion
Group Editor:
Dave Bradshaw
Group Managing
Editor:
Wendy Palmer
Managing Director:
Peter Welham
Origination:
Ebony Typesetting
Design:
Argus Design
Editorial & Advertisement Office
No 1 Golden Square!
London W1R 3AB
Telephone 01-437 0626
Telex 8811896
Your Commodore incorporating
Your 64 is a monthly magazine
appearing on the first Friday of
each month
Distribution by: Argus Press
Sales & Distribution Ltd. 12-18
Paul Street, London EC2A 4JS
Printed by: Alabaster Passmore
& Sons Ltd, Tovil. Maidstone,
Kent.
Subscription rates upon
application to Your
Commodore Subscriptions
Department, Infonet Ltd, Times
House, 1 79 The Marlowes,
Hemel Hempstead, Herts HP1
IBB
The contents ot this publication
including all articles, designs,
plans, drawings and programs
and all copyright and other
intellectual properly rights
therein belong to Argus
Specialist Publications Limited
All rights conferred by the Law
of Copyright and other
intellectual property rights and
by virtue of international
copyright conventions are
specifically reserved to Argus
Specialist Publications Limited
and any reproduction requires
the prior written consent of the
Company 1 1986 Argus
Specialist Publications Limited
FEATURES
Cheap Copy
Citizen's new printer - for under £50.
Dial-A~File
16
30
A file editor to complement our Telephone Exchange program.
Remember the Plus/ 4 35
A look inside the Plus/4's memory.
Graphically Speaking
Doodling with CRL's new graphics package.
Amiga Playtime
And now there are games for the Amiga.
Game Maker
Stuart Cooke reviews Activision's latest utility.
SERIES
Programming the C-16
Amass more knowledge about your C16's capabilities
i Froggy
Touching up your arcade game.
Programming the 1541
Get in a spin with our disk drive series,
i Chip Chat
Understanding the inmost secrets of your computer.
Going for a Song
Musical tricks for your C64.
Welcome to the Machine
Teach yourself machine code - made easy.
REGULAR
Data Statements
Missive s
Game of the Month
Action Rep/ay
Communication Corner
Club 128
Software for Safe.
Oops!
Listings — ,
COMPETITION
Detailed Directories
A special disk routine for your C64.
■ The Monster Returns
Type in this C64 game.
■ Assembler 128
First part of our Editor Assembler for your 1 28.
■ Go Faster 64
Speed up your C128 in C64 mode.
■ Lunar Ordeal
38
54
82
24
28
56
58
70
84
10
18
45
60
74
76
80
96
21
40
62
68
77
A space age games program.
The incredible
Citizen two-colour dot matrix printer!
Thanks to a super deal we can offer you this
highly advanced, high guality printer at the low, low
price of £49.991
You can make more of your Commodore with
the CITIZEN printer. If you have a VIC-20, C64. C16,
Plus-4, C 128 or C 128D, you'll be expanding into word
and data processing in no time at all.
This top notch printer from CITIZEN — famous
for hi-tech watches and electronic office products — is
packed with some really stunning features .
All you have to do to obtain your CITIZEN
printer is to complete and post the coupon below,
enclosing payment for £49.99 plus £2.50 p&p. But
hurry, stocks are limited!
Compatible with Commodore VIC-20. C64. C 16,
Plus-4. C128 and C 128D Home Computers.
Helical-drrven print head - as used on expensive
printers.
Seven-wire dot matrix head.
Uses STANDARD plain paper roll.
Uses STANDARD two-colour typewriter ribbons.
Responds to Epson control codes in dot
addressable graphic mode with single and multi-
line printing.
Prints Commodore graphics and inverse
characters. *
Programmable line spacing and <v
expanded print capability. »o°
Available from all good
computer stores nationwide
News
Software Shopping
Software is an area of the computer
market which is nearly always booming
with new products. At the moment
there is a vast choice and everyone
should find something to please them
from utilities to the most basic of zapp-
ing games. So let's launch ourselves into
the software supermarket straight away.
Something for Everyone
Those of you who have bought and
enjoyed New Generation games in (he
past, will be interested to know that
Virgin Games has now acquired all rights
to New Gen's back catalogue plus the
rights to seven new tilles.
No one has yet announced which
Commodore titles are going to be
included in this new deal or given
release dates, however Virgin's Nick
Alexander was very effusive about the
new deal: "I have been a fan of New
Generation's software since my first days
in the business when I saw their ZX81
programs at Microfairs. We've both
come a long way since then and I look
forward to further progress."
Chess buffs, always on the look out
for a new way to indulge their regrett-
able addiction, should look out for
Audiogenic's Grand Master Chess. This
version has now been around for a while
but Audiogenic recently announced
that the C-16 game is now totally com-
patible with the Plus/4. £8.95 is the price
for C-16, Plus/4 and a seperate C64
version.
Quicksilva has invented a new '
character - Jeremy the punk photo-
grapher. He has to wander around
snapping new inventions to meet his
editor's photography deadline (sounds
familiar!). Your Commodore's photo-
graphic boys seem to have an easier life
since they haven't yet had mutant
monsters trying to nick their film! Look
out for Jeremy in Quicksilva's Hocus
Focus (£8.95) on the C64.
Those who like a bit of recent history
intermingled with their gaming can try
Microprose's Conflict in Vietnam war
game. The game features events dating
back to 1954 and features the decisive
battles of la Drang (1965), Khe Sanh
(1968) and Cambodia (1970). There is 110
pages of documentation to keep you
occupied for hours. In the states it sells
for $39.95 so you'll need to be a fairly
dedicated war gamer to afford this one.
Ariolasoft is hoping you'll prefer the
more leisurely pursuit of a few rounds
on the green and try your hand at the
new Golf Construction set. Build your
own golf course or just play around on a
few world famous ones which are
reproduced on the program - The
Belfry, Wentworth Old Course,
Sunningdale and Royal St George.
DATA
STATEMENTS
An added incentive for those who
become really expert is Ariolasoft's mag-
nanimous offer of £500 worth of golf
equipment for the first 12 people who
get their handicaps down to scratch
(zero - to us uninitiated plebs). The disk
version is on sale for £14.95 and a twin
cassette version is priced at £12.95.
Touch Line
Virgin Games: 95-99 Ladbroke Grove,
London W11 1PG.
Audiogenic: 12 Chiltern Enterprise
Centre, Station Rd, Theale, Berks RG7
4AA.
Quicksilva: Liberty House, 222 Regent
St, London W1R 7DB.
Microprose: 120 Lakefront Drive, Hunt
Valley. Maryland 21030, USA.
Ariolasoft: 68 Long Acre. Covent
Garden, London.
Outer Spacers
AS ALWAYS THERE ARE MASSES OF
games newly available which have an
interstellar setting.
Bubble Bus has come up with a cute
game featuring Blob - Bio-Logically
Operated Being (well, aren't we all?).
The game is Starquake and Blob has to
scurry through a tunnel and cave
network inside a planet to collect
various bits and pieces to rebuild the
planet's core. There are over 500
locations and features including - Anti-
grav lifts, Teleportal systems, planet
surface, Security doors, sub planet
exploration, propulsion pads and
planetary beings (hostile). It's £8.95 on
cassette for the C64.
Fans of TV's sci-fi series V will be
pleased to know that Ocean has
released the game of the series on C64
on cassette. For those who missed the
telly program, the scenario is invaded
Earth and the baddies are lizard-like
aliens whose leader is called Diana! You
play the part of the leader of the
resistance movement, Michael
Donavan. All you need to do is find out
the formula for Red Dust so that you can
use it to exterminate the aliens by pollut-
ing their air conditioning.
It's available now and costs a mere
£8.95.
Imminently arriving in your local
computer shop is CRL's new sci-fi
adventure, Tau Ceti. Set on a plague-
devastated earth colony in the middle of
a far flung interstellar galaxy, your role is
that of the intrepid suicidal maniac who
has volunteered to go and repair the
damage defence system of the stricken
planet so that it can be recolonised. The
5
only way to do this is shut down the
massive fusion reactor which fuels the
planet.
If you want to die quickly and often it
might be worth a shot at £9.95.
Touch Line
Bubble Bus: 87 High Street, Tonbridge.
Kent TN9 1RX.
Ocean: 6 Central Street. Manchester M2
5NS.
CRL: CRL House, 9 Kings Yard,
Carpenter's Rd, London E15 2HD.
Work, Work, Busy, Busy
Never a dull moment from Ariolasoft.
This prolific software house has recently
released three new utility programs.
The first - Calkit{£34.95}- is a toolkit
for solving number problems. It should
help you sort out the mess which is play-
fully termed your finances. Balance your
cheque book, simplify your income tax
and develop accurate home and busi-
ness budgets. In other words it's a very
simple to use spreadsheet.
If you use your C64 or C128 to run a
business from home then perhaps
Ariolasoft's second utility will be of
interest to you. Entitled B/Graph, it is a
visual presentation tool for sales,
marketing, forecasting, accounting,
management and could also have used
for teachers and students. It costs £29.95
on C64/128 disk.
Last, but not least in the new Ariola-
soft batch of utilities is Paperclip with
Spellpack. It's a word processing
package on C64 disk. Ariolasoft claims
that it's time saving and in addition you'll
produce totally error free documents
because of the 15,000 word dictionary.
This one's for the C64 disk and is priced
at £59.95.
Back to spreadsheets and
Audiogenic's successful Swift spread-
sheet is now available on cassette or
disk. The package includes two copies of
the program. One runs on the C64 and
C128 in 64 mode and the other runs on
the 128 and uses the full 128K memory
and 80 column display.
Audiogenic has also imported Turbo
MIRV (Multiple Information Retrieval
Vehicle) from the states. It loads into the
64 or 128 and runs concurrently with
other programs so the user can switch
between the main program and the
desktop functions of Turbo MIRV.
Functions include calculator, memo
pad, alarm clock, calendar and auto
dialler.
Touch Line
Ariolasoft: 68 Long Acre, Covent
Garden, London.
Audiogenic: 12 Chiltern Enterprise
Centre, Station Rd, Theale, Berks, RG7
4AA.
Adventure Spot
If YOU'RE FED UP WITH DEADLY
serious adventures then maybe Mel-
bourne House's latest offering will bring
a breath of fresh air to your life.
The new game is called Red Hawk
and is billed as a comic strip adventure.
The hero, an ordinary guy called
Kevin Oliver alternates between his
normal self and Red Hawk. This miracu-
lous transformation is brought about
when he shouts 'Kwah'. Super human
skills enable him to battle against the
villains and criminals in the city. It's
available now and costs C8.95.
Beyond has now releasedits success-
ful Spectrum title - Doomdark's
Revenge - (or the C64. It is the sequel to
Lords of Midnight and contains 6,144
locations and 48,000 views!
It's an adventure cum war game set in
a medieval fantasy world. It's a text
adventure but there is a difference in
that all possible moves can be accomp-
lished by pressing only one key. There's
a free audio cassette with the games
which tells the story of Doomdark with a
musical accompaniment. The price is
£9.95.
Ariolasoft has also released a sequel.
This one's unimaginatively entitled
Archon II and - predictably - is the
sequel to Archon. It's on C64 cassette m
and costs £9.95.
There's also a new text adventure
now out from CRL The game is called
Pilgrim and it's for the C64.
It is set in the peaceful land of
Meridian and you play the role of a
young boy who has been given the task
to go in search of The Guardian - not it's
not a newspaper, it's the mysterious
protector of the land. The price is £7.95.
Touch Line
Melbourne House: 60 High Street,
Hampton Wick, Kingston-upon-
Thames. Surrey KT1 4DB.
Beyond: Wellington House, Upper St
Martins Lane, London WC2H 9DL.
Ariolasoft: 67 Long Acre, Covent
Garden, London.
CRL: CRL House, 9 Kings Yard, Carpen-
ters Road, London E15 2HD.
Alternative Taste
CRL HAS NOW RELEASED ROCKY
Horror Show on C128.
The company promises that it is the
most exciting version of the game to
date using the extra memory available,
high definition graphics, new sprites,
new animation, new locations,
enhanced music and new game play
features. It costs £8.95.
Nu Wave, CRL's alternative software
house, has announced the release of
Tubular Bells for the C64. The program is
claimed to be 'entertainment offering
amusement for the user in both an active
and passive form'. The program has two
parts - a sound track and a light syn-
thesiser. The sound track is Mike Old-
field's classic LP generated by computer.
The light synthesiser can be left to
run itself or you can intervene to create
your own patterns. It should be in the
shops now and 795 pennies are required
to buy it.
Touch Line
' CRL (and Nu Wave): CRL House,9Kings
Yard, Carpenters Road, London E15
2HD.
In Touch
COMPUNET IS GETTING INTO THE
action with its own multi-user game.
The planned title is Federation II and
there are over 6,000 locations. About
1000 of these will be in use at any one
time. In comparison, MUD has about
400 locations.
Federation II is in the galactic trading
genre and Alan Lenton, one of the
authors, commented: "Just as MUD
arose from dungeons and dragons,
federation II is a development of the
role-playing game Traveller. It will be
very different from MUD in concept."
The game is scheduled for an early
1987 launch.
Micronet has been busy lately.
Interlex is now providing technical sup-
port for Micronet members.
Readers can either send their queries
via electronic mail and replies can be
found from page "8009007.
There is also a hotline where Micro-
net members can get their queries
answered immediately. Micronet
members can subscribe to this for £25.
Micronet has also been involved in
another charity excercise.
Capital Radio's Help a London Child
appeal has benefitted recently to the
tune of £1300. This was raised from a
frame-charged celebrity chatline.
Touch Line
Compunct: 7-11 Minerva Road, London
NW10 6HJ.
Micronet 800: 8 Herbal Hill. London
EC1R 5EJ.
Generally Speaking
FIRST SOFTWARE AND PUBLISHING
has decided to blitz the computer
industry with new launches.
There are 24 new books and nine
new software packages scheduled for
release this year.
There will also be general reference
manuals to examine specific aspects of
the C64 and C128. The Anatomy of the
C128 and Tricks and Tips for the Cl28are
already available priced at £12.95.
Level 9 Computing is taking a stand
against software piracy.
Level 9 has also begun using a
Lenslok, a controversial anti-piracy
device.
Lenslok tests have been placed at
several places in the story of Level 9's
game the Price of Magick, instead of
only at the beginning and the software
has been reduced to a third of its original
size.
Each Lens issued has been printed
with the name of the game to avoid
confusion.
All Your Commodore readers who
consider themselves budding profes-
sional programmers can take heart
because Superior software has begun a
campaign to find some new
programmers.
Superior's Richard Hanson said:
"This programmer recruitment drive is
unique. Only a few companies have
used full colour advertising for this
purpose before, and, via the adverts, we
are offering a free guidebook Top Tips
for Programmers'."
Sales manager Ken Campbell added:
"We're looking for programmers of all
the major micros: the Spectrum, Comm-
odore, Amstrad, Atari. BBC and
Electron."
So if you want information on this
campaign contact Superior of look out
for the ads.
Touch Line
First Publishing: Kenilworth House, 79-
80 Margaret Street, London WIN 7HB.
Level 9: PO Box 39, Weston-Super-
Mare, Avon BS24 9UR.
Superior Software: Regent House,
Skinners Lane, Leeds LS7 1AX.
Win a digitiser from Nexus
for your C64.
THIS MONTH WE'VE SET UP A
competition with Nexus which may
enable you to win a digitiser for your C64
plus a copy of the Nexus game.
The top prize winner, will be the first
person picked out of a hat after the
closing date to get the correct solution.
The digitiser is worth approximately
£150 and there's a copy of the Nexus
game thrown in.
There will also be 24 copies of the
game as runners up prizes.
The competition is based on the plot
of the Nexus game to give you a taster of
what you could win.
How to Enter
Study the diagram on this page and then
carefully read the following instructions.
1. You are standing in a corridor of the
drugs HQ. Your objective is the trans-
mission room from where you can
broadcast the facts of your investigation
to the world. You are disguisded as a
transmission room guard.
2. Exchange places with the transmission
room guard, so that YOU are in the
transmission room and HE is in the
corridor.
3. There is one key rule - Only one
person may occupy a room or the
corridor at any time. And only one
character - a guard or yourself - may
move per turn.
4. How many moves are required to
achieve this and what are they?
Instructions
When vou have solved the puzzle, fill in
the entry form and attach a list of your
answers to it on a plain piece of paper.
Please write the number of moves you
used on the back of your envelope.
Closing date: Friday 25 July 1986.
n
u
n
1_T
"L
The Corridot
You Disguised as Transmission Guard
Post code
j Nexus Competition
j Entry Form
j Name
I Address
I
| Number of moves used
I Send your entry to: Nexus Competition, Your Commodore, 1 Golden
I Square, London W1R 3AB. Closing date: Friday 25 July 1986.
I Please attach a sheet describing the moves you used. Please write clearly on
| the Entry form and your answer sheet.
I 1
The Rules
Entries will not be accepted from
employees of Argus Specialist Publica-
tions, Nexus Productions Ltd and
Alabaster Passmore and Sons. This
restriction also applies to employees'
families and agents of the company.
The How to Enter and Instructions
sections form part of the rules. The
editor's decision is final and no corres-
pondence will be entered into.
it
DOYO
ANT TO BE A
The result of unique cooperation between three ace software developers
and the Biggies film production company, Biggies - The Untold Story wi
knock you right out of the air! It's a multi-part arcade strategy game in
which each part must be completed to reach your final goal.
In the air, on the rooftops, on the ground, or in the trenches
YOU CAN BE A HERO!
Coming in May
Commodore 64
Spectrum 48 K
£9.95 tape, £12.95 disk
£9.95 tape
Coming In June
Amstrad CPC
E
£9.95 tape, £14.95 disk
Purnell Book Centre, Paulton, Bristol BS18 5LQ
Your letters continue to
flood in, keep them coming
so we know what you want.
Decline and Fall
IT CAN BE SAFELY SUGGESTED THAT
the home computing industry is
primarily aimed at those who play
computer games and those who wish to
develop programming skills and the
usage of their machine. However, there
appears to be a growing contradiction
between these ideas and the content of
available publications.
In response to Allen Webb's letter
(April 86. Your Commodore), I find it
increasingly difficult to find fault with his
synopsis that the home computing
market is in decline. Virtually all of the
British home computing magazines.
Your Commodore excepted, offer a
diminishing amount of real interest to
the average key bashing fanatic.
As an example, one magazine,
although not specifically Commodore
orientated, has always been able to offer
a cross section of professional programs
and utilities for the discerning reader. -
Unfortunately this format appears to
have been re-directed towards more
advertising, previews and reviews for
hardware and software. Although I
understand the need for publication to
advertise, and indeed the value of in-
depth reviews. I find it difficult to see
why this must be achieved at the
expense of actual programming (the
very basis of home computing). Surely a
lack of programs, hints, utilities etc. will
bring into question the concept of value
for money. Subsequent loss of readers
will inevitably lead to loss of revenue
from advertising until eventually...?
Although I have now joined the
ICPUG, I have recently found the need
to purchase American magazines such
as Compute! and RUN to satisfy my
hunger for new ideas and information.
Both of these magazines offer good
quality diverse programs whilst still
advertising. The problems with this
situation are that firstly, these magazines
are wildly expensive (approx £3) and
secondly, in my heart of hearts I would
much rather purchase an English
monthly that can compete, if not
surpass, the American competition.
As many magazines have either
disappeared or are on the brink of
oblivion, I shall watch future editions of
Your Commodore with apprehension
and perhaps a little hope. At present I
am generally pleased with the quality of
the magazine and writers such as Allen
Webb continue to perpetrate this
quality. Your Commodore appears to
be the last bastion of sensibility for home
computing enthusiasts or are there
changes on the way that I should fear?
L. Lack
Manchester
Soft Sale
REGARDING THE SOFTWARE FOR SALE
offers in recent Your Commodores,
might I enquire as to which programs
are on the MAY YCMAR86 cassette? Are
readers expected to purchase these
tapes not knowing exactly which
programs they will receive.
Could you indicate at the end of a
program or article whether or not it will
beon the Software for Sale cassette. I
am sure you could do this without
taking up too much valuable space.
I am interested in purchasing the
May cassette providing the program,
Wordprok. by Ian Murray will be
included.
James O. Yarker,
Pickering
Thank you for your interest, James. We
have found that our cassette offer has
been immensely popular, but we also
appreciate your problem. Firstly, the
Wordprok program is included on the
May cassette. All C64 and C128 programs
featured in each issue of Your
Commodore are included on the
cassette for the relevant month. We are
looking at a system whereby we can put
a small logo on certain pages to indicate
whether the article is one selected for
the cassette that month,
Unfortunately we cannot as yet
supply C-16 and Plus/4 programs in the
same way but we are looking into the
possibility of this.
Enter the world of Avenger, a Nlnja warrior
off unparalleled skins and deadly powers, as
tie battles the forces Of evil in defence of nls
faith and protection of the weak.
Be calm and stay silent as the outstanding
animation and unrivalled combat routines
take you to levels of action you o never have
Im - thought possible.
Experience the stunning effects of triple
scrolling action as you master the techniques
of Hand to Hand combat, Pole Fighting and
the skills of the Samurl sword
And when you believe you've succeeded In
overcoming all the odds, the next In this
thrilling series of adventures win beckon you
forward to a further challenge of death.
cremHn Graphics software limited, Alpha House, 10 Carver Street, SfWf nc M 51 «s. t«: 0743-753U2 s <
screenshots from Spectrum 48K
Frank Tout helps you
to clear up your litter]
and file it safely.
ONE PROBLEM WHICH THE
vast majority of disk drive
owners come across sooner
or later, is the massive con-
fusion which can build up
when you realise that you
have large numbers of disks
lying around and you have no
idean what's on any of them.
When it comes to finding a
specific file then the process
is annoying and tedious.
Help is at hand, with this
program - Disk Base 128. It
will store the contents of up
to 300 disks on file and help
you find what you need.
What It Does
When you run the program,
press 'space' at the title page
to enter the main program.
You will then be faced with 11
icons and a flashing cursor.
To place disk file-into the
program's memory move the
cursor (using the cursor keys -
left and shift left) over the
Write File icon and press
return. You will then be asked
for a field number. 1-300.
Select your choice and then
insert the disk which you
want to store in memory in
the disk drive. Then, press
Return. The program will
then load the directory and
store it.
When this is complete,
press Return to gel back to
the menu. The contents of
that disk are now stored
under the field number
which you selected.
You may now repeat the
process as many times as you
wish, just increment the field
number every time.
If you store the same disk
twice, or you merely wish to
get rid of one which you no
longer need, then you can
delete it by selecting the Erase
File icon. In this case, when
asked which field number
you wish to erase, simply
make your choice and key it
in, press Return and the file
is then erased.
When you've finished and
all your disks are in memory,
select the Save File option.
You should then enter the
number of fields you wish to
save. For instance if you only
have 40 disks in memnrv in
fields one to 40, then you can
just save that number of files.
It's quicker and saves
memory.
Load files is simply the
reverse of Erase Files. Select
the Load icon, enter the field
limit and file name and press
Return.
The Scratch icon is so that
you can remove an unwanted
file from disk without
breaking out of the program.
Select the Scratch icon, press
Return and enter the file
name to be erased. It's as easy
as thai.
The Directory Icon will get
the directory of a disk and
display it on the screen but it
will not store it in memory, it's
just to check and view disks
without leaving the program.
Select the Dir icon and press
Return, the directory will
then load, press space lo
return to the menu.
New disk is selt ex-
planatory.
View files icon will display
the contents and/or titles of
disks in memory. Select View
icon and press Return. Then
you can select TITLES or FILES
by pressing T or F.
When selecting titles
enter the field limit you wish
to examine (1-XXX). The
program will then list all the
titles in memory in that
section. Press Relurn to
return.
When selecting Files enter
the field number you wish lo
look at and press space, that
will then be displayed lo you.
Press space lo return.
If you know you've got a
file somewhere but can't
seem to find it select the Find
File Icon and press Return.
You will then be asked what
file you're looking for. Enter
the title and press Return. The
program will then search the
fields and list any which
contain your lost file. Press to
return.
Print files will list to the
printer ihe title and contents
of a field of your choice.
Select the icon, press Return
and enter the field you
require to be printed.
The icons available to you
(from left lo righl) are:
Write File, Erase File, Save
Files, Load Files, Scratch file.
Directory, New Disk, View
Disk, End Program. Prim File.
End file takes you back to the
title page, ihe disks in
memory will not be lost.
The Program
The program is REMmed so
you can follow it and the data
statements are for ICONS.
Variables
FE - field
di$(x.x) - Dim/array for disk
contents
cS(x) - Dim array for titles
a$(x) - arrays for icon data
P$ - lower case
PP$ - carriage return
[PROSRAH: DISKBftSE |
0 poke532B8,8:poke53281,B:cl
r:fast:diidi$(30B,6B):ditc$(
60) :p*=chr$(14):pp$=chr$(13)
:printp$
2 gosub286
4 goto25B
6 color0,12:colorl,l:color4,
13:graphic2,l,12:iiindotf0,12,
39,24:poke 532B1 , 15 :printchr
1(144) :slo*
8 v=B:foPt=lto8:gshapea$(t),
v,4:v=v+2B:next
18 fopt=lto3:gshapebm>,v,4
:v=v+2B:next
12 charl f l v S f pf+ a
Couand.
M
14 chapl,10,7,p$+"
■,l:lo=ll:v=312
16 ifdaMthencharl.B.ll,"!!!
tdata in ■eiopytlttdata in ■
eior-vUUM
18 sprite4,l , l>rnd (1 ) t 15 T 1 :■
ov5pr4,v,54
28 getz$:ifz$="thenl8
22 ifz$="[lEFT] a andv>36thenv
=v-28:lo=lo-l
24 itz$='[RIGHT]"andv<312the
nv=v*28:lo=lo+l
26 ifz*=pp$then30
28 gotolB
38 onlo goto34,84,206,240,90
,118,124,156,186,258,224
32 end
34 gosub452:inpuf field No:-
a ;fe
36 charl,5 t 7,p*+* Write File
to Base ",l:prinf [RVSOMFe
ild ";fe:sleep3
38 printchr$U44)chr$U47>
48 open2,8,15
42 openl^^/W*
44 getll,a$,b$
46 gettl t a$,bl
48 getll,a$,b$
58 c=8
52 ifa$<>""thenc=asc(a$)
54 ifb$<>""thenc=c+asc(b$>l2
56
56 print fl [RVSOtt] a ud$(str$(c
),2);tabt3)'[RVS0FFr;
58 getli,b$:ifst<>Bthen74
68 ifb$<>chr$(34)then5B
62 getll,b$:ifb$Ochr$134)th
enprintb$;:di$(fe,i)=dil(fe,
xi*b$:goto62
64 9etll,b$:ifbf=chr$(32)the
n64
66 printtab(18J;:c*U)="
68 c$U)=c*(*)+b$:gettl,b$:i
fb$O aa then6B
78 print" IRVSOIUMeftKcHii)
1 3):x=x«1:h=m*1
72 ifst=0then46
74 do5e2:closel:printchr$(l
4)chr$ll49)chr$(147):ppintdi
$ife,8):ppintchr$(31):fort=l
tox:printdi$(fe,t);:ppinttab
128>c$lt):next:K=8:c$U)= aa :
da=l
76 poke4097*fe,x:x=0
78 print' Press Spac
e When Ready"
88 getq$:ifq$<>" "thenB0
82 printchr$(147):graphic2,8
,12:«indo«0,12,39,24:gotol2
84 charl,10,7,p*+" Erase F
ile. a ,l:sleep3
86 inpufField No:- - ;fe
88 fort=0to50:di$(fe,t)="":n
Mtipriof File In Field 1
;fe;" Nod Erased' :sleep4:pri
ntchrf(147):gotol4
98 reittscratch file
92 chart, 10,7,p$+" Scratch
File a ,l:sleep3
94 gosub452
96 input "Fi le Naie";na$
98 openl5,8,15:printli5, a s0:
•♦na$
180 print" File ";na$;"
Nom Erased"
182 dosel5
184 gosub458
186 geta$ufa$<>" "thenl20
10B gosub454:gotol4
118 reitldiril
112 chart, 10,7,p$+" Dir
ectorg a ,l:sleep3
114 gosub452
116 directory
118 gosub458
128 geta$:ifa$<>" "thenl28
122 gosub454:gotol4
124 reitlneH disci!
126 chart, 10,7,p$+" Nen
Disc ",l:sleep3
128 gosub452
130 print" This Erases any D
ata Stored on Disc ??"
132 input'ARE YOU SURE";qu$
134 ifqu$="n"thenl54
136 ifqu$= a y a thenl40
138 gotol42
140 gotol32
142 inpufFile Naie';na*
144 input" Identityltno nuier
ics)";id
146 headerna$,iid,d0,u8
148 print" Disc Nov Read
y And Fonatted"
150 gosub450
152 geta$:ifa$<>" "thenl52
154 gosub454:gotol4
156 reillexaiine files
158 chart, 10,7,p$+" Exaiine
Files. ",l:sleep3
160 printchr$il47):input'[BL
ACKJDisc [RVSOHlTtRVSOFFlitl
e's or [RVSONJFCRVSOFFhles"
;»t
162 if»*="f thenl6B
164 ifn$="f"thenl74
166 gotol56
168 gosub452
178 inpufField Luif;fe
172 fort=8tofe:prmtdiJ(t,B)
;:printtab(3B);t:next:gotol8
8
174 gosub452
176 inpufField No:-";fe
178 printdit(fe ! 8):fortt=0to
peek(4097*fe>:printdi$ife,tt
):nexttt
188 gosub458
182 geta$:ifa«<>" "thenlB2
184 printchr$(147):graphic2,
0,12:HindoM0,12,39,24:gotol4
186 reiHsort
188 chart, 10, 7,p$+" Sor
t File B ,l:sleep3
190 printchr$(31}:inpuf What
file Are Tou Looking Far, 1 ;
kn$
192 print" Please Wait While
I Look"
194 :fort=0to380:fortt=0tope
ek(4097+fe)
196 ifkn$=diiit,tt)thenprint
"File Found in Field ";t
198 nexttt,t
208 gosub450
202 geta$:ifa$<>" "then202
204 gosub454:goto!4
206 reitlsave to disc
20B chart, 18,7,pJ+" Save
Files a ,i:sleep3
210 gosub452
212 inpufField Liiit:-";fe
214 inpufFile Naie';na$
216 openB,8,8,'0:'+na$*",p,i*
■:fort=8tofe:M=peek(4097+t)
:printl8 1 HH:fortt=8tapeek(48
97H):printl8,di$(t,tt),chr$
(44):nexttt,t:close8,B,8
218 gosub458
228 geta$:ifa$<>" "then228
222 gosub454:gotol4
224 reillppint files
226 chapl,10,7,p$#" Prin
t Files ",l:sleep3
228 gosub456:inpuf Field No:
-";fe
230 open9 t 4,7:cid9:printchr$
(14)
232 printdil(fe,0):print:for
t=ltopeek(4097+fe):printdi»t
fe,t):nextt
234 printl9:close9:gosub450
236 geta*:ifa$<>" "then236
238 go5ub454:gotol4
240 reiltload froi disc
242 chart, 10, 7,p$* a Load
Files a ,l:sleep3
244 gosub452
246 inpufField Litit:-";fe
248 inpufFile Naie";na$
250 openB.B.a/lr^nal+'.p^
":fort=etofe:inputl8,iH(:poke
4897*t,w:fortt=8topeek(4897
+t):input!8,di$(t t tt):nexttt
,t:close8,8,8
252 gosub458
254 geta$:ifa$<>" "then228
256 gosub454:gotol4
258 reiSttitle page
268 sprite4,8:cDlor8,l :color
I,12:color2,13:color3,16:col
or4,l:graphic3 t l:scalel,648,
280:Hidthl:sleepl:sloH
262 box2, 140,98, 228, 178,45
264 boxl, 140,60,220, 140, 45,1
266 box2, 140, 60, 220, 140,45
268 dran2,96,115to96,145:dra
N2,266 1 86to266,!16:paint2,18
8,144:paint2,98,116:paint2,2
65,87
278 fort=lto39step3:dran3,20
0-t t 70H/2to244-t,92H/2:nex
t
272 nidth2:fort=0to5:dra«8,l
88,125Htol58,l58H:next
274 boxl,58,50,98,98, l l
276 Midthl:circle3,74,74,10,
10:paint3,77,77:a=l
278 chart+rndUH3,B,3,chr$(
14)*"Discbase <128>By F TOUT
1986 Press Space", 1
280 geta*:ifa$<>" "then278
282 fast:goto6
284 end
286 rei
288 fort=35B4to4896:reada:po
ket,a:c=c+a:next
298 fort=lto8:sprsavt,aHt):
next
292 fort=3584to3841:reada:po
ket,a:c=cta:next
294 fort=lto4:sprsavt,b$lt):
next
►
296 ifc<>185598thenprint'dat
a error:" :end
298 fort=0to300:poke4097*t,0
:next
388 slon:return
302 data255, 255,255, 128,8,79
,128,8,159,128
384 datal, 61 , 128,2, 121 , 128,4
,241,128,9
386 data225, 128, 19,193, 128,3
9,129,128,79,1
388 datal28,92,I,144,lB5,l,l
45,113,1,145
318 datal93, 1,147,1, 1,158, 65
,1,152,65
312 datal, 152,227, 1,143, 198,
1,128,8,1
314 data255,255,255,0,255,25
5,255,128,8,1
316 datal28,8,l,12B,8, 1,135,
248,1,135
318 data252, 1 ,135, 126, 1 ,134,
63,1,132,31
328 datal29, 132,63, 193, 133,2
47,225,131,235,241
322 datal29, 149 ,249, 128,282,
253,128,181,127,128
324 data58, 191, 128,25,95, 128
,12,175,128,6
326 data87, 128,3, 43,255,255,
255,8,255,255
328 data255, 128,8, 1,159,255,
249,154,191,249
338 datal49,95,249,154,191,2
25,159,231,225,159
332 datal95, 249, 159, 195,249,
159,231,249,159,255
334 data249, 159,231 ,249,159,
195,249,159,195,249
336 datal59, 195,249, 128, 8,1,
128,24,1,128
338 data68, 1,128, 126, 1,128, 2
4,1,255,255
348 data255,8, 255,255,255, 12
8,24,1,128,126
342 datal, 128,68, 1 ,128, 24,1 ,
128,8,1
344 datal59, 255,249, 154, 191,
249,149,183,225,154
346 datat95,225, 159, 195,249,
159,231,249,159,255
348 data249, 159,231,249, 159,
195,249,159,195,249
358 datal59, 195,249, 159, 195,
249,159,255,249,128
352 data8, 1,255,255,255, 8,25
5,255,255,128
354 data8, 1,128,8, 1,157, 127,
57,148,92
356 data249, 154, 147,249, 149,
99,225,159,132,97
358 datal58,67, 137, 153, 195,2
41,135,231,137,159
368 data252, 121, 159,227,249,
159,3,249,152,195
362 data241,135,195,137,159,
192,121,131,31,249
364 datal28,8, 1,128,8, 1,255,
255,255,8
366 data255,255,255, 128,8,1,
158,125,249,147
368 datal7,25, 145, 17,249, 147
,17,97,158,125
378 data57, 128,8, 1,159, 231, 2
25,159,195,249
372 datal59, 195,249, 159,231,
249,159,255,249,159
374 data231 , 249, 159, 195,249,
159,195,249,159,195
376 data249, 159, 195,249, 159,
255,249,128,8,1
378 data255,255,255,8,255,25
5,255,128,8,1
388 datal55, 123,25, 157,67,25
,149,114,73,151
382 data67,89, 155, 121,241, 12
8,8,1,159,231
384 data225, 159, 195,249, 159,
195,249,159,231,249
386 datal59, 255,249, 159,231,
249,159,195,249,159
388 datal95,249,159,195,249,
159,195,249,159,255
398 data249,128,B,l,255,255,
255,8,255,255
392 data255, 128,8, 1,128,8,1,
12B,8,1
394 datal28, 126, 1,131, 129, 19
3,156,8,57,168
396 datal26,5,13I,195,193,15
9,68,249,198,182
398 datal25,254,98, 127, 198,1
82,125,159,68,249
488 datal31,195,193,168,126,
5,156,8,57,131
482 datal29,193, 128, 126, 1,12
B, 8, 1,255,255
484 data255,8,7
486 data255, 255,255, 128,8,1,
128,8,61,191
488 data255, 253, 191, 254,29,1
68,1,229,191,255
418 data253,191 ,248,253, 168,
15,5,191,255,253
412 datal91, 135,253, 168, 128,
5,191,255,253,188
414 data63,253, 163, 192,5, 191
,255,253,161,255
416 data253,15B,8,5,191,255,
253,128,8,1
418 data255,255, 255, 8,255,25
5,255,128,8,1
428 datal59, 255, 249, 152,8,1,
159,248,1,152
422 dataB, 1,159,255,249, 128,
8,1,159,128
424 data25, 153,248, 25, 152, 68
,25,152,15,153
426 datal52, 1 ,249, 128,8, 1 ,15
9,255,225,152
428 data8,57, 152,8,25, 152, 8,
57,159,255
430 data225, 128,8, 1,255,255,
255,8
432 data 255,255,255,128,8,8
1,128,8,65,128,15,289,128,15
,193,128,11,289 , 128 , 9 ,
193 , 129
434 data258,289, 129,248, 127,
129,122,21,129,56,5,191,98,2
1,191,15,253,175,66,129,167,
8,129,171,66,129,161,255,129
,168,80,1,168,16,1,168,88,1,
255,255,255,8
436 data8,8,8,31,255,252,32,
0
438 data2,39,255,242,48,8,18
,41,255,282
448 data42,8,42,42, 127,42,42
,128,178,42
442 datal56, 178,42, 162, 178,4
2,162,178,42,156
444 datal70,42, 128, 170,42, 12
7,42,42,0,42
446 data41 , 255,202,48,8, 18,3
9,255,242,32
448 data8,2,31,255,252,8,8,2
55
458 print" Press Space
To Continue.' :return
452 sprite4,8:pnntchr$(147)
:graphic8,l:tiindoti0,0,39,24:
print' Press No Scroll To St
op and Continue. ':mndo»i0,l,
39,24 :return
454 printchr$U47>:graphic2,
0 1 12:mndo»i0,12,39,24:return
456 sprite4,8:prmtchr$(147>
:graphic8,l:*indoii8,0,39,24:
print' Please Ensure Printer
Is Switched 0n.':MindoH8,l,
39,24:return
THE FINAL CARTRIDGE
THE FIRST OUTSIDE OPERATING
SYSTEM FOR TIJE CBM 64 *
NEW FINAL
CARTRIDGE
INCLUDING
This new operating system built in a cartridge
does not use any memory and is always there.
Compatible with 98% of all programs.
DISK TURBO ■ 6 times faster loading -
b times faster saving.
TAPE TURBO - 10 times faster, even
with files - normal Commodore
commands - compatible with standard
turbo's.
ADVANCED CENTRONICS INTER-
FACE - compatible wiih all the well-
known Centronics printers and Commo-
dore printer programs. Prints all the
Commodore graphics and control codes
(important for listings).
SCREEN DUMP FACILITIES - of low-
res Hi-res and multicolour screens!!
Prints full page with 12 shades of grey
for multicolour pictures even from games
and programs like Doodle. Koala pad.
Pnntshop etc. Searches automaticly for
the memory-address of the Picture.
Special version available for the CBM
801 and 803 printers
24K EXTRA RAM FOR BASIC-
PROGRAMS AVAILABLE: Twu new
commands Memory read", ..Memory
write". They move 192 bytes with
machmelanguage-speed anywhere in the
64K Ram of the CBM 64 Can be used
with strings and variables.
BASIC 4.0 COMMANDS - like Dload.
Dsave. Dappend. Catalog, etc.
BASIC TOOLKIT - with Auto, Renum
lincl. Goto and Gosub), Find, Help, Old.
etc.
• works with C128 in the 64 mode.
Original multicolour full page screen
dump print out.
PREPROGRAMMED FUNCTION
KEYS: - Run. Load. Save. Catalog. Disk
commands, List (removes all hst-
protections)
KEYBOARD EXTRA'S - Allows you to
delete part of a line, stop and continues
listings; move cursor to lower lefthand
corner Pokes and Syscalls in Hex. Typ-
command operates your printer as a
typewriter.
COMPUTERS
COMFORTABLE EXTENDED ML.
MONITOR: - with relocated load
scrolling up and down. Bankswitching,
etc • does not reside in memory.
RESET SWITCH: - resets to monitor,
resets with old, resets to Hi-res printing;
resets every protected program.
ON/OFF SWITCH - we hope you never
need that one.
Stops and continues almost every
program and allows you to make a total
back up to disk or tape automatically.
Specs Creates one file on disk or tape
Packs the program.
Freezes 4 to 6 times faster than
dedicated freezers.
Menu driven:
Freezer options include
full page printing
fore- and background colour changes
reverse printing
jumps to monitor or reset
Training mode
kills sprite collision detection.
1 2 Months repla-
cement guarantee
U.K. ORDERS Available by the wellknown
Commodore Dealers or directly from
H & P Computers
9 Hornbeamwalk
Witham Essex CM8 2 SZ England d.
Telephone: 0376 - 51 14 71.
copyright and reentered trademark H&P compuieri
Wolphaerisbochl 236 3083 MV Rotterdam r»elherlar»ds Tel 01031 • 10231982 Tele. 26401 a ml. nl
Review
Stuart Cooke takes a look at
NO MATTER WHAT YOU ARE DOING
with your computer there will be a time
when you will need to get some sort of
printout. If you are writing your own
programs then you will need to get a
printout so that you can check it through
carefully as you develop it. If on the
other hand you are copying a listing,
such as one from Your Commodore,
then errors are bound to creep in and it
is much easier to check the magazine
listing against a printout than it is against
your TV set.
However, there is one small
problem, cost. Nearly all printers are
well over the £100 mark, in fact it is very
difficult to find a printer that is under
£200. Well don't worry. Spectrum, a
company that has a retailer in just about
every high street, is importing a printer
that is set to change this.
The printer that Spectrum is selling is
manufactured in Japan by Citizen. It is
designed to be completely compatible
with the Commodore range of home
computers. So much so that they have
even made the case a similar colour to
that of the C64. The price of this printer
is just £49.99.
Obviously there are bound to be
some corners cut with a price like this.
Well there are. For a start the printer will
only use roll paper that is 80mm in width.
This is very easy to obtain as it is the size
of paper used by many desk top
calculators. Secondly the printer will
only print a maximum of 40 characters
per line. An example printout is
included (full size) with this article so
that you can judge for yourself the actual
quality of the print. My feeling is that the
manufacturers claim that the printer
'Expands your Commodore into a word
and data processing system' is a little
wide of the mark. I couldn't see myself
sending business letters out on paper
that is only 2\ a inches wide. Even so it
does work well and if you don't already
own a printer then it is well worth
looking at. In fact a second printer of this
quality is quite often useful to have
around for producing quick directory
listings etc.
Even though the printer does have a
few 'faults' it has a surprising number of
points in its favour. The printer measures
only 240mm by 176mm. This means that
it takes up very little room, in fact the
review model is sat on top of my
monitor.
Even though it is small and cheap it
also has a large number of commands
available. All Commodore graphic
characters can be printed so there are no
problems reading listings. Some printers
totally ignore the Commodore graphic
codes. It is possible to print out listings in
lower case mode as well as in graphics
mode. It is also possible to produce user
defined graphics on the printer.
THIS IS A TEST PRINT TO SHOW THE MUff
OF THE PRINTOUT OF THE £49.99 CITIZEN
PRINTER
6 1 2345fc7390*CDEF8H I JKL!lHt3PQ*?STIA'WXV7
IT CAN DO ftLL OF T* COMMODORE OflPHICS
ItM/W-l.flii f a SEE!!
r"L IU .— - iipr r-, nn t lit t kii^:
fcNHHNLtU pKINI 1 Mb
IT IS EUEH POSSIBLE TO ill &;■:«**:>:**.?
find w wjsx not fbrvel totwrcase
HOT BflD PT ALL FOR Tr€ PRICE !!
** C001 *»
1 < >»,-./% 23456739: 1 <=>?Sfl6CC€F6
HIJI0JWIIST0WKVa£3t* la~J * bfH-ih-
rvit i r"-_i % \ rv-ii k ■
LVTTMl /WWIU1**f*ijM«0Mrst
wuxyzE 1 <>*+»- .'3123456789! ;<=>?«
^:DEF*!JKLWQRSTL^WZ£tjT* laj 1 ■
rihih-rMii ru« B t*wii rv-ii—
Enhanced printing is also catered for
and one unusual feature is the fact that
the ribbon is both black and red. Unfor-
tunately you can only use one colour per
line. Even so this is extremely useful for
highlighting text.
Even though quite a bit of
compatability is there, there are many
programs that will not work correctly
with this printer. You should beOK with
a program that simply produces listings
but if any graphics are printed you may
get into problems. This is because most
programs that print graphics or perform
screen dumps assume a printer width of
80 characters.
Even so it is very difficult to complain
at a printer that offers quite a large
amount of compatibility with your
Commodore computer at a very low
price.
If you could with a printer but until
now thought that the price was putting
you off, take a look at this one.
Touchline
Citizen two-colour printer
CentreSoft
PRESENT
With over four years experience ol providing practical software solutions for business and home applications. Gemmi ha ve put together a
selected range ot famous titles for the Commodore 64 and 128in TWO special packs, at VERY SPECIAL prices. These super value packs
contain all the serious application software you re ever likely to need for your CBM. from word processing and database management to
a complete professional business accounting system. Gemini's OFFICE MATE' and OFFICE MASTER ' are here now -
pul that computer to work!
Word Processor
A tufy -featured word processor program with text (emailing -
nght jusTi'cabon • adjustable page length • text centenng •
output of all or pan ot leit to prmier * selective saving * We
concatenation - Hock move • Mock delete - reverse print •
grapnesprrt ■ double width pnnt - sorting • left and nght
margin selectable ■ word count • search and replace
Database
Superior hie management system wflh features found only
wrth packages costing much, much more Completely user
definable data entry formal - colours de*rnabkt - advanced
mathemabes using built - n machine code expression
evaluaur • fast sort on numenc and strmg fields - extensive
searching with wild card' capattty ■ user -definable data
summaries ■ simple on-screen editing A really POWERFUL
database'
Mailing List *
This program will enable you to keep a record ol names and
addresses and men pnni examine, son and find them all with
soeoal selection techntoues Featirnng the larnous Gemini
search • key' system, you have the option o* Dealing your own
dedicated corjrng routines >or each name on Ihe 'lie
For example, on most mail systems you are or", given the
standard hearings such as name, street, town, county, etc
but with our system, you could for example find all companies
listed that have a turnover <n excess of a certain 'igure. or all
subscribers *ho are behind with the* subscriptions . or a*
people «gc*e ,01 a Christmas card thts year 1 A lull range of
utilities is callable from the menu mdudmg. otcourse. label
prinlmg
Home Accounts
Designed as a complete home accounting package, this
program alows the user to set up and maintain a budget lor
items o' household expendture and compare actual won
budge! .eflher numerically, or w*h the aid ol chad graphics
A complete bank account routine is ncluded. together wrth
standard enpenditure categories wn«ch may be cnanged B
suit
• Word Processor • Home Accounts
• Database • Extensive
• Mailing List Documentation
OFFICE MATE £12 Cassette
or 1341 Disk £15
Step up to OFFICE MATE and save money! Usual price individually £79 80
• Database
• Cash Book
• Mailist • Word Processor • Stock Control
• Final Accounts • VAT File • Full Documentation
Database. Mailist and Word Processor as Office Mate ' PLUS:
Cash Book / Final Accounts / VAT File.
Gemini s legendary cash book system lor the CBM is a complete stand-alone accounting
software package, already in extensive use by both accountants and their clients.
General System Overview
The Germ cash book package lor the Commodore 64. 1 ?b
ir»orocomputer 4 rJesajned for a hardware system
consisting of
f. CorrvTtodore 64 1 1?8 microcomputer
3 BO column printer
3 Cassette or disk data storage
Please note that nmnng the program on d-sk ww not change
the way that the program works, but you will have the benefit
ol tar greater speed and reiiafxlrty for the oadmg and saving of
files that a disk system provides
There Is a total ol 199 nominal accounts, a large number of
when may be defined by the user You may have up to four
cash control accounts, six bank control accounts one sates
ledger and one purchase ledger control account
The program will store a data Ate consisting of
The account Mies
The current cumulative balance on each account
(debrl or credit)
The net movement on each account tor every month ol
the year
4 VAT net sales and net payments hgures. wftch are
automatically created and maintained by the program
This same data Me n used by the FINAL ACCOUNTS
program The VATFILE whx^accomparves this package is
designed primarily for those users on the Relators speoai
VAT schemes
The mam features o< the CASH BOOK program are as follows
i Double entry routines 'or transacMra ttveugh the
cash bank accounts and sales. 1 purchase ledger control
■coounti
*
? Journal tadfcykx Ihe evtial set up ot accour*s. or to*
adjustments to any of the accounts
3 The facility to produce me toUowmg screened or pnnted
reports
(a) Listing ol an the nominal account tides
lb) Monthly transaction summaries
(c) A kiat balance whenever required
(d) Screen VAT memo account balances (sales net
purchases, and VAT accounts).
te) A batch printing facility wheh provides details ot ai the
transactors entered m the current run ot the program
4 The facility to extract regular management mtormation
such as cash ban* balances, debtors and oedrtors, i
overheads. e»c
5 The program interfaces wrth the Gemmi FINAL •
ACCOUNTS prog/am to ename Trading and Pro* it and
Loss accounts and Balance Sheet to be produced
whenever required Comparative o* budget figures can be
shown arongsxM the actual 'tgures using rh>s program
6 Screen prompts throughout the program to facilitate ease
of use
1 Storage of VAT ntormation to assrst m the preparation of
penotK VAT returns
9 Error trapping roubnes to minimise input errors
9 The faofcty lo handle the rmanoai transactions of sole
traders, partnerships, limited companies, ckjbs. esc
Users registered tor VAT are reminded thai it is a statutory
reowremenl lo *iform the* local VAT office wrw they change
their accounting records on lo a new compulensed accounting
system
OFFICE
MASTER
£25
Cassette
or 1541 Disk
Dealers please note that Office Mate' and Office Master'
now available also on BBC. Electron, and Spectrum.
MAIL
ORDER
TO:
Sole distributors to the trade:
Centre5oft Ltd. Tel. 021-359-3020
Gomnj
I '!. . ,-■ ft ..-
P*aw sryyl rno.
Gemirv. Marketing Limited. Gert«nt House '
Dinan Way Trading Estate Exmouth. EXB 4RS j
CBM 64 >' 128 1 ■ eMate packs'" C1?(Disk £15) ,|
CBM 64 128 Ottice Master packs i" E25
Cassrjne I Disk (please delete as necessary!
I
deque P O s enclosed to value C .
or please doM my
Access Ame« Mo
I
I Trade and overseas enquiries welcome 1
Signal u*rj
24 HOUR CREDIT CARD
HOT LINE
(0395) 265165 (4 lines)
jayne Goin spends some
time on the fairway and
finds it great fun.
TIGRESS MARKETING ARE VERY PROUD
of the latest addition to their ventures.
Released through Ariolasoft, the Col*
Construction Set should prove to be the
ultimate in computer golf simulation
until laser disk games appear.
Whether you're a golfing pro or a
rank amateur, this package has every-
thing to recommend it. A full bag of
clubs selected by yourself, a range of
skills and techniques plus several world
famous courses to play on.
Wentworth, Sunningdale, the Belfry
and St Georges are all supplied initially
and Ariolasoft promise more courses to
follow in the future. The construction kit
is so detailed (hat it is possible to
recreate the special features of each
course from the claustrophobic wooded
appearance of Sunningdale to the
numerous water hazards of the wet-look
Belfry.
Golfing competitions take two
forms: Match Play and Competition.
Competition is the familiar game
where the player who holes out on the
eighteenth green in the fewest number
of strokes is the winner. In this
simulation up to four players can
compete.
Match Play is a two player game and
each hole is either won, lost of halved.
This means that the winner is the first
person to win 10 holes and the re-
maining holes are left unplayed.
Normally, a drawn match is played on
from the first tee until a two hole lead is
established by one of the players but this
is not possible in this simulation so a
drawn match can occur.
As each new hole is played it is
loaded from tape to disk. Fortunately
this can be described as the normal
delay caused by the players walking
from green to tee. As the game starts this
is hinted at by the legend 'Walking to the
first tee' emblazoned across the screen
as the rest of the game loads after the
initial option screens.
A full complement of clubs cannot
be carried so three must be selected for
omission at the start of the game. Playing
a shot involves several further decisions.
The screen design is there to assist your
judgement. The top left quadrant of the
screen shows the view towards the tee in
3D. Under this is a panel which gives all
the vital statistics of the hole and the
weather and turf conditions. The right
half of the screen shows the plan view of
the hole.
Weather and turf conditions affect
the length of shot which can be played.
Wind direction dictates a particular
extra force on the ball, warm air slows
the ball less than cold air, rain has a
similar effect and the dryness of the turf
affects bounce and distance.
Taking all of these factors into con-
sideration your club is chosen and the
direction of the shot is determined by
moving a cross in the direction of play.
At this point the extremely clever nature
of the 3D display becomes obvious. Each
time you reposition the cross the view is
redrawn. In this way a very realistic view
is created.
Next the amount of loft and fade is
selected. Loft determines whether the
ball will fly high or skim across the grass.
Fade causes the ball's trajectory to bend
in a deliberate way unlike slicing or
hooking which are caused by incorrect
handling of the club.
The final decision is the actual stroke.
A small golfer appears at the bottom of
the now cleared text screen and
proceeds to take swings at the ball.
Pressing the fire button ono the
backswing causes the golfer to hit the
ball from his current position. The
higher his backswing the harder the ball
is hit.
If the ball lands in an unplayable
position you have the option at the start
of each stroke selection sequence to
move back to your ball's previous
position, end the game or proceed
immediately to the next hole.
On reaching a distance within a few
yards of the flag, the 3D screen gives way
to a large scale plan view of the green
showing the vertical and horizontal
components of the slope of the ground.
Allowing for the roll which this slope will
cause, you place your targeting cross
and swing. If you manage to hole out
before reaching this plan view you are
treated to a slow-motion, action replay
of your shot.
As in the real game each player has a
handicap. Starting as a novice your
handicap is 28 and you must prove your
worth as your play each round. The
handicap is designed to smooth out the
differences between professionals and
amateurs. At the end of a Competition
game, your handicap is subtracted from
the total number of strokes taken and
this gives your final score. If this value
minus the total par for the course is less
than your handicap value, a new grading
is generated and this lower handicap can
be saved to tape or disk.
In Match Play each hole is allotted
difficulty level in comparison with the
other holes. This meansthat each course
has a fully nominated scale of one to 18,
each hole having a unique value. This is
taken into account in conjunction with
your handicap when deciding which
player has won.
The construction section is very easy
to use if the correct procedure is
followed. After choosing the par value
for the hole, the tee and flag are placed
using a joystick and a screen readout of
the distance between them.
Next the boundary line is drawn and
then the elements of the course can be
added. The choice is made via two icon
menus, one for the size of object and the
other for the type. The types available
are water, bunker, green, fairway,
rough, woodland or scrub. The size
gauges are roughly circular but range
from about four characters in area to
almost pixel size so most shapes can be
created.
After entering the relative slope on
the course and the stroke index, the
hole is complete.
I loved this game and I know that the
Chairman and the Pro at Wentworth feel
the same way about it. If this is still not
recommendation enough then just try
the game, few will be able to resist its
immense appeal.
• CBM 64 AND 128 • TRANSFER ALL MAJOR TURBOS • AUTOMATIC • NO USER KNOWLEDGE #
COMPARE THE REST WITH THE BEST
NOW DOSOFT OFFERS YOU EVEN MORE!
MegaTransfer
DiskV.4.0
Before you whu h tape to -disk utility
id buy. consider if H give* you
• Full conversion* <>1 Multistage
Program* to load from Disk • Fifteen lop
titles including the latest spons. flight in J
tight »ini . i .i No more tape winding'
No other utility of any description tan offct
this • General purpose tra otter
routine* for the makir turboload
system* Nova, Burner, Vlslload, Huh
and Pav (including t he ivrytatttl Pavloadcr
u*ed on current chart toppers) and more
These routine* will transfer programs which
won't normally load with the Disk Drive
present. • A huge collection of specific
routlne* fut individually protected
programs, all accessed via an easy Menu
System • A program identifier, and ihc
classlcDIakua 1.2 -infer your vintage
slow load collect ion
MegaTransfer V.4.O. is economical
ot Disk Space, transfcrringittily the actual
program material Transferred pn>gram* will
reload at over lour times the normal rate
with the incorporated Disk Turboloader.
w hich also allows your srfiriru; disk
programs to be fastloadcil from disk
MegaTransfer V.4.0 is t'Otily extended
from previous edit Hint Despite claims to
the contrary. M will transfer programs
which no other utility will handle.
Beware of similar sounding utilities,
which consul almost entirely of disguised
wrsmeitut our old material If you want to
he up to date, you need MegaTransfer. the
real 'Turbo Smasher'.
At press lime, all ad»emsec
Turfto tn Disk soft
£17
MegaUtility
DiskV.4.0
WITH TEN
FREE DISKS
• NEW Alphaload disk TurboLoader for
games etc Add this five block program to
each disk ind your program* will load at
over four times the normal rate No menu b
rruu ired and you d on I fuse to had
Alphaload separately Muc h Improved over
previous versions • r*rogrammer*s
TurboDbk Utility. Fast load. save, and
verify wtirk* with all device numbers
Displays program sun and end addre««e »
Includes easy DOS command* Compatible
nithmosi expanse" - •Whole
Disk Copter hacks up an entire disk in
under three minutes. • Turbo Hie Copy
selected files from Disk m Disk Beads and
write* at five time* normal speed.
• Nibble Disk Copy hacks up most
protected disks tn msl five minutes. Be ad*
and writes all cintn automatically • Fast
Formal. Format your disks in a fraction of
■he normal time '• Disk to Tap* Plu*.
Transfer a w Ide variety of single and
multipart disk programs to tape with
visible scrccnAiripc border turboload
Include* professional mastering scheduler
An interesting program (not for protected
disks} • MegallllityDUk i* supplied
complete with 10 FREE JM Blank Disks
( w it h plastic box . a*
specified in this ad i
MegaTape
Super Value
• Our famous tape utility for One
Datassette (or equivalent) No additional
hardware Is required. MegaTape
• T*pe-»o--
»-Tape transfer
i A vast collection for the major
turboload games • Simple to operate,
MegaTape handles a vast range
of different fast load system*, and even
incream loading speed In many cases
• Features our Vlsl-Screen, Stripe
Turboloader • The most powerful
Tape-in-Tapesoftwanreverdeviscd • RBS
P!u* ( hir classic turbo conversion utility
sites a new lease of life to your vintage
skiwload tape collection Converted
programs load independently ai SEVEN
time* the normal rate. f% *-*» £ (\
with Vlsl-Screen M ripe A- J
Inrhnlmd \ • I U I | - BaU M
Id HHS and Fasti
saws
£17
AND *sirr- T
SAVE
MONEY JlY
• Buy MegaTransfer and MegaUtility
ti wet her (price £34. 00 in lading 10 FREE
Disk* (A Boa) and receive MegaTape (on
disk) and our praised sprite lihraryeditor
(Pro-Spritei al FREE)
• Purchasers will receive detaih of future
update* and can buy new DoSofl Programs
a advanugcous price*
Existing customer*: send any OoSidl
3 M Disks at
Low, Low Prices
Why boy unlabcllcd. unlsranded disks of
uncertain ongin and specific*! km >
• We offer topcla**.*M Disk* heiringthc
manufacturer * label, at an un precede ntcdly
low, low price • Spec i fieat ton S5/DD
7MD-0. suitable for all S w * drives •
Complete with labels, w rite protect labs.
IV sac spun acrylic sleeve* and a FREE
Flip/File High Impact Plastic Storage
Box worth £2 .7) Our Inclusive Price is
.--i 1W .s<> per r*.\ ill ten.
No extras No catches ^^^O
This Is the price you nay. I f
I K POST FREE. CVJLM
We take a
bite out of
Disk Prices!
How to get your DoSoftware
Please scndcash'chcquc'PO wilhorder
for fast despatch (SAE only for full details)
Send off now to
DoSoft (Dcpt YC(, 2 Oak moor Ave.
Blackpool, FY 2 OEE
I K Postage included Europe add W) TS.or
£2 if order includes Blank Disks Overseas
add £1 SO for Airmail, or »,V SO if order
includes Blank Disks
DoSoft
You'll Do it Better
with DoSoft
FAST DISK UTILITIES • IOADERS • .VMIN DISK COPY • FAST DISK FILE COPY • FAST FORMAT
OUICUCJISC+
hav«
merrw
mm v*lt
or eaBBjW' ■" ™
t
THE
DISC DISECTOn
V4.0
iao>-
een
"-TEE"**- p™»" M
iottwaiel
Very FHt
Ic* selective
MinH speed No *
........
-2" «•»■ "-»
■MM
p,tncer to"*
mo* the fourth qeneraClon of CM country S leading *« °«
SLSmE M minute?. Handles the latest types of disc
P' 01 „„,.,-iw automatically. Atthe lime of oping to
protection •>«P aa >S*"S J M .vdlK I H—M W l
P.«ir» and bM«i.
.„(!„ including, In* ieie*> — —
wVre/m rvrn copies 1 28 term* or <HWi m CPW rrvx*
Ctntronl"
(use* portl with
64 "^.MV MORE "StFUl
PUIS ""SfvJ Ti*K« VOUR
ONLY £19.95
mnwi ^^^^""^ ^5
averTfarter bartups. incorporates devxe number change
^«iad«fout<n«wlfansl« iwnme«G*m«ll *>d Beacn
Head It" iodise _ _
-DISCO- win t-am/e- standard speed load software to drsc
"trans OB- «M you mm a law **> ^ J«" ^
-DOUBLI BACK UP" B ■ very fait rwO dnve back up
sss. ,;r,.;rsjr;«rrai fits: a- «■
ONLY £29.95
.. ..niT ••ntoot «~y ' k " >9
p ,vm.n« Of C9 .95 to ••<•*-• V4.0
lm , .,.CBM ( H and 1570.71 compatible In 64 mod..
THE NEW GENERATION OF
BACKUP METHODS
1$ NOW EVEN BETTER
THE LAST WORD IN BACKUP TECHNOLOGY
thousands of latlif i.d cimomtn jre using [hem
version o< .he product lhai incorporates a frw useful improved PLUS
!*" ,n ? ,,nd °~ »"»9'«. memory re.ld.nt. mS
that Freeze Frame could not handle. (This irxtude. Ail
iorrw*e up io 4ih May 1 986) " WWM
OPERATING FREEZE FRAME"
plugged into the cartridge port When me c ompute, rs switched on a me7
sage k displayed, presanc, ■ retubn w-l clear the computer hack to the
22 «*« Softwa'* can nowoe loaded from tape o. *sc com
plet.ly .i normal. The latest vervon o» -Freeze Frame wtfl to the oesi
ol our knowledge, allow ANY software to Wad arvj run no,mat ly fuS
tompetltrve prod ix Is) ' ,unw,p
■■Freeze Frame - can be Drought nto operation at any convenient point o v
pressing, he Demon on r, Vou can then do one of three tr,ngs ^ ™
' m^,o D e ft""rrj. V r 0,h '7 V *"'°" °' ' h « In
spiTd reload venlon will Include a high
Si?? $ Wl " "° th * Mm- ■» D •"•P« lhat the reload
will be at itandard 1 541 load ip«*d. (Alw tultable for U %
Z ,1 S! ^ T WO '*" ,>9 w- " ton °' ** P'«»9«ni in
memory to tape. Thl. Incorporate, a high »pe*d reload at
Alt,
THAT IS mi
' M WO HTTH -PBHZF PffAM £ CA/V
) INDCPCNDANTl Y OF THE UTILITY
Hcruori
Commodore
MUST eX
OWNER • ,„
NOW EVEN FASTER
ooo- 1 "'
ODDS AND ENDS
STAR NLIOC ir* oew Commod3fe ieady pmter. many
tran»n in<lxl"»j 1 20u» «sri mo*. 2 ?<pi near krw quaKy.
ir jcior jnd •■KiKm WO *wn semi — B—dC sngk- tf*ei te«i
most luncwB fror* p*o« iwtttr. vWctaUe Our pemaps most
^pcrr^if, ihr Interface cartrldoe It replaceable. So*
you c-wv io -xrtner ™ k < «• 'orwwer »*J*ftKjfJ?
4 new imerlare lo sue °"IY 00
OtSC raOTCMBI *lkw you to r*s*y cut a second write pro
tea notth r. your d«» so lhai you «n use b««HAvq
wsetmawget ONlYta.fS
AZIMATI MOO lets you reM^n trie hr*d of your OJU
,^ieOuKkly*»iea«iy SuppHed w<n IMMM
only <a.«
mat gHim the oest O-amy drscs. avaiaWe Iromus-me
owe of cheap ones Buy the best they last - IHetime flo.es of
ten —
SINGLE SIDE DOUBIE DENSITY ft » »S
DOUBLE SIOE.DOUBieO(NilTY tU.«
OR PACKED IN A PLASTIC UBRARY CASE
SINGLE SI Or DOUBIE DCNSITY CI2.»5
DOUBLE SIDB.'DOUBLE DENSITY' C 1 4.95
COMMODORE COMPATIBLE OATA IttCORDEIT
MM the same ope»aoons as me C2N or I S3 1 Out aja«U
uv™ Abo rtiudes * pause burton |rf ta use with C 1 6.*aus-
psrasesiatel ONLY Ut.fS
TheiaptbMup-eertce-
DcuBln W brtn *> enorraow M ceu
aro (oobrurs ki sen wy *w Wy>
BrtAjw II is Dv ben product of Its type
onmr-urvn Dcut^usniirw'WCWJ
tha (oor- all lypti ol lofreart r^ L -
kwcf sored .t icrsisa ol hardware and
•ortware f he tofhvae 5 the Key Dai as
fear nner proaum of as type Dace*
ciMtsa brand new Mia) copy Kn
very easy w me *« «er. suHessW m Un
a# test have proved ■)■ ma arvcr '
'■ v.r-.-IJOHwn,,,
"fwrei access lorwoorw Tcordfrs
ONLY 112.95
Whyienielorleu-rNsli the ben.
we Arre conudcnt imai —tnt
'"**" « »>*• MOST eOWF RFUL
and rUBJeU BACHue trsriH in
the woeio.
Do»f any MllevrNNyoAprM MA '
TAeiroouc oncTOTAee
ontToonc otscTOTAee
PUIS mr Mom k| BMey aj Bdaj eM »
v** h my iijot aw mum to Dui rov
no". t*«i* r*°9" | "> eaBM *o» —
00»« nM rnr tutum q prrw)
*"*-r«BB«ng«creu.a*
OaBSBBB program Dy punr.j 1 KWi
1™ r-vani Wei rt> tna thr- «r
**MAier>0w
mm fwami mas vj anous
couerr/riov
cowcrmvi eeooucTs
A ...... sufi^rn
■ 1, ,
no rictprm 'erltruif, fo us but
P«t<a« no, tar n* Iw
tk« rtfui raM l#aa 1 « 1 000a produn
""-'K-'l IUt«fn^<miloni».
l'-> t*.', T 1 1 .
• ; - r- nufin
"Ol BBdi (»» Cy aVrrtrHnrj n true uwd
pr^o-*-. OMV h* nw^a wrth
the ce n rldo» ■» >N<i
tject' i« 11 eaBu to oium in~
<««o« bo ijOhi Mrtouiry m «m
pee— i»a Rj*" R—
action aeetAsr »«, m upr im
pub aunmiM mr axr «omray 10
mer dBHBJ m Mm round nuny prwara
' ■ - ' ■ ■ .1-
ONLYE39.95
Ownen of earlier v.rUom can return them and upgrade lor C 1 4.95
SIBIOUSW-aNlNC. 'KlsnAN(»lKM| l .ro*IWuireODUCIAND
rist"icri»roen«soNAiust cx>. tcdmca*? iiwiihwoiiii
«*»uc:i Non«HC,( t w criin i,-, ro*t»o. ............
DOLPHIN DOS THED.FFER E NCEIs5WGCary ?
Ukc evefyone that has had the pleasure of seeing this system in
operation you will be amazed by both the speed and ease of
use. It is compatible with the majority of commercial software,
speeding up both the program loading and SEO'REL files.
Fitlrnq requires the insertion of two sub assembly boards, one
In the 1541 and one in the '64/* 128. This does not normally
entail soldering, although a small amount will be necessary
with some machines.
ONLY £69.95
If you require further irVormatlon please send SAE for fact sheet
Operates with the CBM 64 or 128 In 64 mod* with 1541 disc drive.
THE FEATURES
25x FASTER LOADING |PROGRAM FILESI
1 2x FASTER SAVING | PROG RAM FILES)
lOx FASTER LOADING (SEQUENTIAL FILES)
8x FASTER SAVING (SEQUENTIAL FILES)
3x FASTER LOAD AND SAVE 'RELATIVE!
[These figures do not allow for searching)
Easy DOS commands from function keys.
Fast formats 40 tracks giving 749 blocks free
Centronics driver software inbuilt
Machine code monitor
Can be switched out if necessary
SUBJECT TO AVAILABILITY. ALL ORDERS DESPATCHED THE WORKING DAY AFTER RECEIPT
All prices Include P&P and VAT. Send cheque. Postal
Order or Credit Card No. Credit Card orders accepted
by phone. Callers welcome. Wide range of goods
stocked. Trade enquiries welcome. European orders
send price as advertised. Outside Europe £2.00 for
airmail. Mall order to Evesham please.
EVESHAM MICROS
BRIDGE STREET, EVESHAM,
WORCS. Wnil 4RY.
Tel: 0386 41989
MICRO CENTRE
1756 PERSHORE ROAD,
COTTERIDGE, BIRMINGHAM.
Tel: 021-458 4564
,n Australia contact: MICRO ACCESSORIES of SJK.. 39b Anderson Walk. Smithfield. South Australia 5.14. Tel: (08) 254 6284
2 PRINT"[ CLEAR]": POKE 53280,0
:POKE 53281 ,0
4 IF PEEKC49152 30169 AND PEEK C 49 1 53 3
<>8 THEN LOAD'H/CODE" .8,1
6 CLR:Z=4
8 DATA "DEL " . "SEQ ","PRG 'V'USR
"BEL " ,"DEL<" ,"SEQ<" ,"PRG<" ,"USR<" ,
"REL <"
FOR J=0 TO 9: READ TiCJ3:NEXT
:GOTO 122
OPEN 15,8,15,* 10": INPUT* 15 ,A ,B*
: CLOSE 15
IF AO0 THEN PRINT"C CLEAR, D0UN3 ,
RIGHT, UHITE.SPC63DISK ERROR
:•';"[ C73"! A;B*:FOR 1=2 TO 2500:NEXT
: RETURN
OPEN 4.Z
ji= i *":Ni=""!L4=" ":G*='[SPC42 3"
IF R=l THEN Li = G4
OPEN 1 .8,3, "W
FOR J=l TO .142: GETtfl .Ai: NEXT J
FOR J=l TO 16: GET** 1 ,Ai
:IF A*=CHR4C 160 3GOTO 30
N4=N*+A*
NEXT J:GET*1 .Ai.Ai
FOR J=l TO 2: GETttl .A*
:IF Ai=CHR4C160 3GOTO 36
I4=I4+A4
NEXT J
FOR J=l TO 92: GET«1 ,A$: NEXT J
PRINTM ,L%i "C CYAN] " I " DISK NAhE
: ";n$; ": ID Ii; " 2A"
IF F=0 THEN PRINTtt4,L4;"CC33"; -
TK: SE:FIL.: BLK: PROGRANL SPC3 3NANE
:S/AD"
IF F=l THEN PRINTP4.L4-; - [riAGENTA3";
" FILE: BLK: PROGRAMT SPC33NAf*lE : S/AD
:E/AD"
f1=f1+i:GETttl ,K4,T4,S4
:IF S4=""THEN Si=CHR4C03
F*="":FOR J=l TO 16:GET»1,A4
:IF A*=CHR*C160 3GOTO 52
F4=F4+A4
NEXT J
FOR J=l TO 10: GETttl ,A4: NEXT J
L=0:IF At<>" "THEN L=ASCCA43
GET*1,A4:IF f1<8 THEN GETttl, At, A4
:GOTO 62
M=0
SU=ST: IF K$=""GOTO 110
K=ASCCK4 3-128: IF K>4 THEN K=K-53
IF K<1 THEN K=0
FL=1S IF K=2 OR K=? THEN FL=0
IF F=l THEN GOTO 78
H4=t1ID4CSTR4tASCCT4 3 3,23
:PRINTtt4,L4; "[ CI ] " ; LEFT4CG4 ,
3-LENCH433!H4;
H4=f1ID4CSTR4CASCCS4 33,2 J .
: PRINT*4 ,"C WHITE3 "» LEFT* CG4 ,
3-LENCH433;Hs; " ;
76 IF F=0 THEN: PRINT«4 , "f HAGENTA3 " ;
0
14
16
18
20
22
24
26
30
32
34
36
38
40
42
44
48
52
54
56
58
60
62
64
66
68
70
72
74
Get more details from your
disks with this routine from
DISK DIRECTORIES ON A C64 CAN
only be described as a pain. Unless you
have a utility program that will display a
directory on your screen the only wayof
finding what is on your disk is by loading
the directory into the computer.
Obviously this erases the program that
was already in there. Hence the need for
a program such as this.
The machine code section of this
program (DIRECT.CODE) consists of
three small routines.
From C000 to C0A9 is a routine that
wrll display the directory. Once
DIRECT.CODE is stored in your C64 then
the command SYS 49152 will display the
directory of any disk to the screen.
Leaving your program intact.
At COAA to COEO is a routine that is
used for finding the end address of a
program. At C0E1 to C0F9 is a small
relocatable routine that produces a
striped border effect.
Detailed Dir is a program that was
written around these three routines to
provide a very useful disk utility.
Firstly you can get a listing of any disk
on either the screen or printer. If you are
using the printer then you have the
option of printing on the right hand side
of the paper. As you are no doubt aware
directories only fill up half the width of a
standard piece of paper. With this
program you can feed the paper back
into the printer and use the other half.
Secondly the program can also give
the following information:
Disk Header.
Track No and Sector No where program
is stored.
Number of blocks a program uses.
Program name.
Program start address.
Program end address+1.
If you wish to use any of the machine
code routines in your own programs
then careful study of Detailed Dir
should show you how to use them.
Getting It In
Detailed Dir is a Basic program so you
should have no problems typing it in.
DIRECT.CODE is a Basic loader for
the machine code. Type this in as a
normal program and SAVE it in case you
should have made any errors.
Now RUN DIRECT.CODE and if all is
well you should be asked to 'PRESS
T4CK 3;
78 IF F = l THEN PRINT*4 ,L4; "C MAGENTA J " !
LEFT4(G4 , i 3;T4CK3;
80 IF F=0 THEN H4 =MID4 C STR4 CL 3 ,2 3
: PRINT*4 , "[ GREEN] " ; LEFT4CG4 ,
3- LENCH4 3 3; H4; " ";
82 IF F=l THEN H4=MID4CSTRiCL 3 ,2 3
: PRINT«4 , "C GREEN] " ; LEFT4CG4 ,
4- LENCH433;H4; " ";
84 PRINT*4 , " C C7 3 " ! F4; LEFT4 C G4 ,
17-LENCF4 33! "E YELLOW ] " ;
86 IF K=0 GOTO 108
88 IF K=2 OR K=7 OR F = l THEN OPEN 2,8,
4,"0: "+F4+" , "+T4CK3+" ,R"
90 A=0: IF FL=1 THEN 98
92 GET**2 ,A4 ,B4: A=0: IF A4<>" "THEN A=AS
CCA4 3
94 B=0:IF BiO" "THEN B=ASCCB4 3
96 GOSUB 114
98 IF F=0 THEN 106
100 POKE 785,170:POKE 786,192
: A=A+USRC03
102 IF FL=1 THEN PRINT*4 ,A; "BYTES" ;
:GOTO 106
104 PRINTM , ,- C C33"; " " ; : A*=A/256
:A=A-Akx256:B=B+Ax: GOSUB 114
106 CLOSE 2
108 PRINT«4
110 IF. SUI=0 GOTO 46
112 CLOSE l: CLOSE 4: GOTO 120
114 X=B/16:GOSUB 116:X=A/16
116 FOR J=l TO 25 X*=X- X * CX-X* 3*1 6
: IF X*>9 THEN X**Xjm£
118 PRINTw4.CHR4CX*+483; :NEXT J s RETURN
120 RETURN
122 PRINT "[ CLEAR] " ; S E4 = "C MAGENTA ,
RUSON ,SU ,RUSOFF] " : GOSUB 186
124 PRINT "C HOME, D0WN3 ,RIGH-T2 , WHITE]
THISC SPC .C7 3PROGRAMC SPC , WHITE J WILL
ALLOW YOU TO[ SPC ,C73PRINT"
126 PRINT"CDOWN,RIGHT4 , WHITE]
YOUR DISK DIRECTORY TO THEC SPC ,C7J
SCREENC WHITE3*' : PRINT"C DOWN ,RI GHT2 ,
C7J0R PRINTER."
128 PRINT'C DOWN.RIGHT3,UHITE3YOU WILL
ALSO HAUE A CHOICE OF THE"
130 PRINT "[ DOWN, R I GHT3 FOLLOWING
:-CC7]ENDC WHITE, SPC]
OF PROGRAM ADDRESS , "
132 PRINT , 'CDOWN,RIGHT6]PRINTCC7,SPC3
LEFTC WHITE, SPC 30RC C7 ,SPC'3RIGHT
C WHITE, SPCIOF PAPER,"
134 PR I NT "C DOWN,RIGHT3C73CHECKC SPC ,
WHITE3YOUR DISK BEFORE ^OU DUMP
TO"
136 PRINT"CDOUN,RIGHT3J
SCREEN OR PRINTER WITHOUT LOOSING"
138 PRINT TAdC 11 3"C DOWN 3 THIS PROGRAM . "
: GOSUB 190
140 E4 = "C GREEN , RUSON ,SU ,RUSOFF3 "
: PRINT" [ CLEAR3"; : GOSUB 186
: PR I NT " C HOME, D0UN2, WHITE, RIGHT,
SPC6 3FUNCT I ONS AT YOUR DISPOSAL"
142 PRINT "C UP, RED ,RIGHT ,SPC6 .CT273 "
144 PRINT TABC 11 3"C C73 <<<C MAGENTA ,SPC3
SCREEN DUMP[C7,SPC3>>>"
146 PRINT TABC 13 3"C UP ,RIGHT2',RED ,CT1 1 J
" : PRINT '[ DOWN , RIGHT .YELLOW ,SPC23
CHECKC SPC .CYANJFOR CORRECT DISK"
148 PRINT "CD0WN2, RIGHT , YELLOW .SPC2 ]
PRINTCSPC ,CYAN3TO SCREENC WHITE3-
CCYAN3END ADDRESS"
150 PRINT "C DOWN, R I GHT , YEl ' Old .SPC23
PRINTLSPC,CYAN3TO SCREENC WHITE3 +
CCYANJEND ADDRESS"
152 PRINT" CDOWN2, RIGHT , YELLOW ,SPC2 ]
NEXT MENU — >>>":GOSUB 154:G0T0 166
154 A 1 $ = " C HOME , D0UJN6 ]" : A24="L RI GHT3 1 3 "
:A3i = "C C7,SU3 C SI ]"
156 A44 = 'TUP]":A54 = "CSJ ,SC4,SK]"
: AA4=A24+A34: AB4=A24+A54
158 F14="CSB.WHITE,SPC]F1CC7,SPC,SB]"
: F34 = "CS-, WHITE, SPC JF3CC7, SPC, S-3"
:F54 = "C SB, WHITE, SPC 3F5C C7,SPC,SB3"
:F74="CSB,WHITE,SPC]F7[ C7, SPC, SB J"
: F8i = "C SB, WHITE, SPC 3F8C C7,SPC,SB3"
160 PRINT A14+AA4:PRINT A24+A44+F 1 4
:PRINT AB4: PRINT A44+AA4
:PRINT A24+F34
162 PRINT A4i+AB4:PRINT AA4
:PRINT A24+A44+F54: PRINT AB4
: PRINT A44+AA4:PRINT A24+F74
164 PRINT A44tAB4: RETURN
166 GET A4:IF A4 = "C F 1 ] "THEN PRINT"
C CLEAR 3 " ; : GOSUB 186:G0T0 176
168 IF A4="[ F3] "THEN PRINT"C CLEAR3 "
:Z=3:G0SUB 254:GOSUB 190:GOTO 140
170 IF A4="[ F5]'THEN PRINT"C CLEAR] "
:Z=3:G0SUB 256:G0SUB 190:GOTO 140
172 IF A4="CF73"THEN GOTO 200
174 SYS 49377:G0T0 166:REM G0TO165
:SYS49377
176 OPEN 15,8»15,"I0": INPUT*15,A,B4
: CLOSE 15
178 IF AO0 THEN PRINT"C D0WN3 , RIGHT ,
WHITE, SPC63DISK ERROR
: "I "C YELLOW] "; A; B4: FOR T=0 TO 2500
,:NEXT:GOTO 140
180 PRINT , 'CDOUN3,RIGHT3,C6,SPC23 USE
SPACE BAR TO PAUSE LISTING"
182 PRINT TABC83"CD0WN,RIGHT3,C3JANY.
KEY TO RESUME.": FOR DE=1 TO 2000
:NEXT:SYS 49152
184 GOSUB 190:GOTO 140
186 FOR X=l TO 39:PRINT E4;:NEXT
:FOR X=l TO 23:PRINT E4;"CDOWN,
LEFT]"; :NEXT
188 FOR X = l TO 39:PRINT £4; "C LEFT2] " ;
:NEXT:FOR X=l TO 23
: PRINT E4; " C UP .LEFT ] " I : NEXT : RETURN
190 PRINT"C HOME ,D0UN23 ,RIGHT7 , YELLOW]
PRESS ANY KEY TO CONTINUE"
192 FOR DE=1 TO 200:NEXT:SYS 49377
194 PRINT "C UP, RIGHT7, RUSON, YELLOW]
PRESS ANY KEY TO CONT INUEC RUSOFF ] "
:FOR DE=1 TO 200: NEXT
CG
196 GET At: IF A4 = " "THEN 190
198 RETURN
200 E* = " C CYAN , RUSON , SU .RUSOFF ] "
:PRINT"C CLEAR]"; : 60SUB 186
202 PR1NT"[ HOME .DOWN2 .WHITE .RIGHT ,
SPC6 3 FUNCTIONS AT YOUR DISPOSAL "
204 PRINT"[ UP, RED, RIGHT, SPC6,CT27J"
206 PRINT TABC 10 ]"[ YELLOW] < <<C MAGENTA ,
SPC3PR INTER DUMPC YELLOW ,SPC] >>>"
208 PRINT TABC J03"C RIGHT4 ,RED ,UP ,CT12]
210 PR I NT" CDOUN. RIGHT .YELLOW, SPC2]
PRINT I.EFTC SPC, CYAN, SPC]
-END ADDRESS"
212 PRINT"[ D0WN2 .RIGHT .YELLOW .SPC2]
PRINT LEFTCSPC, WHITE, SPCJ+C CYAN]
END ADDRESS"
214 PR I NT "C DOWN, RIGHT , YELL OW ,SPC2]
PRINT RIGHTC SPC .WHITEJ-C CYANIENP
ADDRESS"
216 PR INT "C DOWN?, RIGHT , YELLOW ,SPC2]
PRINT RIGHTC SPC .WHITE] +[ CYAN] END
ADDRESS"
218 PR I NT "C DOWN .RIGHT .YELLOW ,SPC2]
CHANGE DEUICE NUMBER NOWC WHITE .SPC ,
LEFT]";Z
220 GOSUB 154: PRINT AAt
:PRINT A2i+A4t+F8$: PRINT AB*
:GOTO 222
222 GET A*: IF A* = "C Fl ] "THEN R=0
:G0SUB 254: GOTO 200
224 IF Ai = " C F3] " THEN R=0:GOSUB 256
:GOTO 200
226 IF A4="CF5]'THEN R=l: GOSUB 254
:GOTO 200
228 IF A4 = "C F7] "THEN R=l: GOSUB 256
:GOTO 200
230 IF At = "C F8] "THEN PRINT"'C CLEAR] " I
:GOSUB 186: GOTO 236
232 IF A*=" "THEN 2
234 GOSUB 248: GOTO 222
236 PR I NT 'C HOME .D0WN3 .RIGHT2 .WHITE ,
SPC7] INPUT A UALUEt SPC, MAGENTA] £
CGREEN]0-255£ MAGENTA] 3"
238 PRINT"C D0WN,RIGHT3,SPC5]D0 NOT
USE A UALUE OF 3"
240 PRINT"C DOWN,RIGHT3,SPC43AS THIS
IS FOR THE SCREEN"
242 OPEN 1 ,0:PRINT"CC7,DOWN2,RIGHT6,
SPC2] INPUT DEUICE NUMBER ? 4CSPC2,
LEFT3] " ; : INPUTal ,Zt
244 PRINT:CLOSE 1 : Z=UALCZ* J
S IF Z<0 OR Z>255 OR 2=3 THEN PRINT
"CUP3]":GOTO 236
246 GOSUB 1 90: GOTO 200
248 PRINT "C HOME, D0WN23 .RIGHTS . YELLOW]
PRESS SPACE TO RESTART PROGRAMS LP] "
250 FOR DE=1 TO 200: NEXT: SYS 49377
252 PRINT".C UP .RIGHT5 .RUSON .YELLOW]
PRESS SPACE TO RESTART PROGRAMC UP2]
":FOR DE=1 TO 200: NEXT : RETURN
254 F=0: GOSUB 12: RETURN
256 F=l: GOSUB 12: RETURN
SPACE TO SAVE'. If you have made any
errors in the program then correct them
before trying again.
When you press space the program
"M/CODE" will be SAVEd on to your
disk. This is the program that
Detailed Dir will look for when you
RUN it.
If you want to use the machine code
in your own programs then "M/CODE"
should be loaded with the extension.8,1
so that it loads at memory location 49152
(SC0O0) onwards.
PROGRAM: DIRECT .CODE
2000 FOR L=0 TO 15:CX-0:FOR D=0 TO 15
: READ A:CX=CX+A:POKE 49152+L*16+D .A
:NEXT D
2010 READ A: IF AOCX THEN PRINT"ERROR
IN LINE" ; 2040+ C L*l 0 ]: STOP
2020 NEXT L
2040 DATA 169,8,133.75.163,0.133,104,
169,128,133.105,32,68.229.169.1824
2050 DATA 36,133,2,169,1,133.183,133,
184,169,36,162,8,133.185,134.1861
2060 DATA 186,169,2,162.0,133.187,134,
188,32,213,243,165.75.32,9.1930
2070 DATA 237,165,185,32.199,237,169,
0,133,144,160,3,132,183,32,19.2030
2080 DATA 238,133,195,32,19,238,133,
3 96,164,144 ,208,87,164,183,136,208,
2478
2090 DATA 235,162,6,163,32,32.210.255.
202,208,250.169.1 .141 ,134,2,2208
2100 DATA 166,135.165,196,32,205,189,
169,14.141 ,134,2,169.32,32,22,1863
2110 DATA 231,32.19,238,166,144.208.
43,201 ,0,240,6,32,22,231 ,76.1889
2120 DATA 113,192.32,237.246.240.28.
37,228,255,240.3 3,201 ,32,208,9,2306
2130 DATA 32,228,255,240,251,201,3,
240,10.169,13,32,22,231 ,160,2,2089
2140 DATA 76,50,192,32,66.246,32.739,
237,96,169,0.162,4,149,98,1858
2150 DATA 202,16,251,169,160.133.97,
162,2,32,198.255.230.101 .208,10,
2226
2160 DATA 230.100,208,6,230,99,208,2,
230,98,32,228,255,165,144,240,2475
2170 DATA 235, 32, 204, 255, 198. 37. 6, lfU ,
38.100,38,99,38,98,16.244.1739
2180 DATA 96,162,15,142.32,208,160,73,
136 ,208 ,253 ,202 .234 ,234 , 165 , 197 ,
2517
2190 DATA 201,64,240,239,169.240.141.
32.208.96,0.0,0,0,255.255,2140
3000 REM xx READY TO SAUE xx
3010 PRINT "CCLEAR,D0WN3,SPC4]DATA
ALL CORRECT"
3020 PRINT "C D0WN4 .SPCJPRESSC SPC ,
RUS0N]SPACECRUSOFF.SPC]TO SAUE"
3030 GET Ki: IF Ki<>" " THEN 3030
3040 POKE 43,0:POKE 44,192:PGKE 45,253
:POKE 46,192:CLR
3050 SAUE "M/CODE". 8,1
Programming
IN THIS ARTICLE I SHALL BE
concentrating on setting up
and using split screens. These
are extremely useful in a wide
range of games and have the
distinct advantage of making
available extra memory within
the machine and are based on
raster interrupts.
Raster Interrupts
The one type of interrupt not
discussed last month was the
raster interrupt. In order lo
explain how to use raster
interrupts I had better first
explain what they are! Rasters
basically relate to the screen
picture sent by the C-16 to the
TV. As the computer outputs
the screen signals to the
television it scans from the
top of the screen lo the
bottom. 50 times a second.
Therefore each pixel line that
is generated (there are eight
pixel lines in each character
line of text) is called a raster
line. There are. therefore,
25^8=200 raster lines for a
screen. The border uses a
further 111 lines at the top
and bottom of the screen
display for the PAL colour
television system as used in
the UK. On the American
NTSC system there areonly 61
raster lines for the border.
The two memory locations
$FF28 and $FF1C (65308 and
65309 decimal) are the vertical
raster count registers. These
two bytes can be read to find
which raster line is currently
being displayed. As the
picture is displayed from top
to bottom, these registers
increment from zero to 311
(or 261 for the NTSC system),
before going back to zero
again for the next frame.
Bit zero of address $FF1C
(65308 decimal) contains the
highest bit of the raster
compare register and address
$FF1D (65309) contains the
lower eight bits. Also, address
$F F 1 E (65310 decimal)
contains the upper eight bits
of the nine bit horizontal
raster position register. This
increments so fast that its only
real use to the programmer is
to generate random numbers.
Fieure 1 shows a short
The
demonstrate the basics
behind operating a split
screen. The loop in lines
10100-10120 waits for the
raster register to equal 123
decimal, i.e. just below
halfway down the screen.
Lines 10100-10170 then set the
colour of the background
border to cyan. The loop in
lines 10200-10220 waits for the
raster scan to equal zero
again, i.e. the very top of the
screen. Lines 10250-10270
then set the background and
border to white — it then
goes round again. The result
is a two colour screen. Figure
2 shows this listing as code in
case you "don't have my C-16
Assembler which was
published in the June 1985
edition of Your Commodore.
Right, so now we have
looked at what rasters are.
let's start thinking about
raster interrupts.
Addresses $FF0A and
$FF0B (65290 and -65291
decimal) contain the nine bits
of the raster compare
register. Address SFF0B holds
the lower eight bits, and bit
zero of address $FF0A holds
the most significant bit. The
remaining bits of SFF0A hold
the interrupt mask register, so
be careful not to alter any of
these when changing zero.
When the raster line count
in registers $FF1C and $FF10
equals the value in the raster
compare register, bit one of
the interrupt status register at
$FF09 is set (see my interrupts
article). If bit zero of the
interrupt enable register
(SFF0A) is also set, an
interrupt is generated. As
explained in my previous
artir-l^ ArlHrpviPs 10314 and
$0315 (88 and 89 decimal)
hold the address of the
interrupt vector which is
usually $CE0E, but can be
altered logo to a user routine.
Therefore by setting bit
one of the interrupt mask
register, setting the raster
compare registers to the line
where you wish to interrupt,
and redirecting the interrupt
vector you should get an
interrupt — right? Well, it's
not so simple unfortunately,
because the C-16 also uses the
raster interrupt itself all the
time for its own split screen
routines for graphics modes
two and four. Unfortunately
these routines are also active
in all the other graphics
modes and can never be
turned off.
So why not change the
machine's existing split
screen routines to create your
own interrupts and split
screens? Well, you can't. In
fact you can't even change
the line at which the screen
splits. Therefore to create
your own raster interrupts,
split screens etc., you have to
write it all yourself, including
some of the interrupt service
routines, because these also
mess about with the split
screen.
So is it all worth the effort?
The answer is 'yes'. Split
screens are more useful for
the C-16 than just about any
other computer due to its
limited memory capacity.. At
present, when the high-
resolution mode is selected, a
huge 10.3 Kbyte portion of
the 12.3 Kbyte maximum
available memory is used up
leaving you with a couple of
thousand bytes in which you split screen progran
can do very little. However if
you split the screen and use
say 15 of the 25 available high-
resolution character lines,
leaving the remaining 10 in
low-resolution mode, you
can save 3200 bytes in the
high-res screen space plus
another 400 bytes in the
luminance and 400 bytes in
the chrominance tables. We
also gain another 600 bytes in
the low-res screen and
another 600 bytes in the low-
res colours giving a total of
320O 40O» 40(H60O» 600=5200
bytes saved. Thus we have a
total of 7245 bytes free
compared with the original
2045. Admittedly this memory
is scattered all over the place,
but this is not a serious
problem for machine code
programs. There will be much
more about using the
additional space in a future
article. For now just bear in
mind that it is possible to have
three and a half times as much
memory when in hi-res
mode.
Split Screen Routine
Figure 3 shows the assembly
listing for the split screen
routine. Figure 4 shows the
code for the split screen.
Enter Figure 4 instead of
Figure 3 if you don't have the
C-16 Assembler. In Figure 4
lines 10000-10020 load the
machine code. The routine is
stored in an unused area of
memory at $0600 (1536
decimal) and is around 200
bytes long.
I have included a table
which is a breakdown of the
system variables used in the
•
Note thai the position of
the splits must follow in order
down the screen, i.e. the
raster line for the second split
must be greater than that for
the first split. The raster lines
for the screen start at one at
the top of the screen and go
down to 202 at the bottom.
Although the screen has only
200 raster lines and therefore
in theory the last line of the
screen should be (200*1$. for
some reason the lines end at
202. Also, if you need an
interrupt right at the top of
the screen it is better to set
the raster line to zero instead
of one as the change will take
place off the screen avoiding
any flicker. To avoid flicker
and attribute difficulties, the
raster line number for the
split should be set from the
following equation:
Raster line no.
line)+8 + 1
(Character
Note that the character line
can be from zero to 24. The
equation makes the screen
split at the bottom of the
character line; flicker can
occur if the raster line is set to
the middle of the character
line.
Assembly Listing
Lines 10100-10290 — turn on
the split screen, altering the
position of the interrupt to
$0630. They also 'enable' the
raster interrupts and sets the
raster compare register up to
the first split.
Lines 10300-10380 — turn off
the split screen system by
redirecting the interrupt to
the ROM service routine.
Lines 11000-11520 — contain
the interrupt service routine.
This routine, mainly adapted
from the C-16's ROM,
contains all the code
necessary to make it read the
keyboard, update the clock,
etc. Note that it is not possible
in this case to use the C-16's
own ROM routines because
these would ruin the split
screen.
Lines 11050-11080 — perform
a split if the interrupt was a
raster interrupt.
Lines 11100-11170 — dealwith
all the RS232 interrupts used
in operating printers, disk
drives, etc.
Lines 11170-11280 — turn off
the 'raster interrupt' flag in
the raster status register if
there was a raster interrupt
and also set the new split
line position in the raster
compare register.
Lines 11290-11310 — decide
whether it is a new 1/50th of a
second and if it is (i.e. if the
next split is the top split
update- the clock, read the
keyboard and increment
sound duration registers in
the routine at lines 11400-
11520. If it is not however,
they jump to the IRQ 'exit'
ROM routine in line 11350.
Lines 12000-12090 — perform
a split. This routine interrupts
the Data byte into its
appropriate instructions.
Because all screen changes
must be done at once, it
pushes the numbers to be
changed into registers X and Y
and stores all the values
toward the end of the
routine, at lines 12500-12560.
Lines 12100-12110 — fetch the
data byte.
Lines 12120-12180 — dealwith
the 'TED fetches from
RAM/ROM' bit, altering bit 2
of address $FF12.
Lines 12182-12194 — dealwith
the 'position of the video
matrix' bit by setting byte
$FF15 to 8 for low-res or with
the position of the start of the
luminance table (stored in
address $07FB for a high-res
screen).
Lines 12200-12260 —deal with
the '24/25 line screen', the
'bit-map' mode and the
'extended background
colour' mode bits by altering
bits 3,5 and 6 of register $FF06
accordingly.
Lines 12300-12390 — deal with
the '38/40 column screen' bit
by altering bits 3 and 4 of
register $FF07 accordingly.
Lines 12500-12560 — store all
these values virtually simul-
taneously to reduce flicker
between splits.
Lines 12600-12700 — move
the split position counter on 1
to the next split, or back to the
beginning if the end of the
split table is reached.
Data Bytes
The data byte for each split
contains all the information
about the window below it.
For example if you want a
screen split in the middle with
the top half in high-res and
the bottom in low-res, set the
date byte for a split at the top
of the screen for high-res, and
the data byte for the a split
half way down for low-res.
Here is how the bits of the
data byte are arranged:
Bit 0: 38/40 Column Screen : 0
for 38 columns and 1 for 40
columns. This is used in
smooth scrolling and will be
explained in a later article.
Bit 1: Multicolour Mode: 0
for mode OFF and 1 for mode
ON.
Bit 2: TED Fetches from
ROM/RAM. In low-res
normal mode and character
set is contained in ROM. so
TED (the text editor device in
the C-16) therefore fetches
information from ROM. In
programmable character
mode (see my article in the
November 1985 issue) the
character set is in RAM, so
TED therefore fetches from
RAM. In high-res mode also
TED fetches from RAM. The
bit is 0 for 'TED fetchs from
RAM' and 1 for 'TED fetches
from ROM'.
Bit 3: 24/25 Line Screen. This
is also used in smooth
scrolling. 24 line mode cuts
off half a character line from
the top and half a character
line from the bottom of the
screen (the actual visible
effect depends on where the
window below the split is. If
the window is in the middle of
the screen only, this bit will
have no effect at all).
The bit is 0 for 24 lines and 1
for 25 lines.
C1 6
Bit 4: not used.
Bit 5: Bit Mapped (high-res
mode). The bit is 0 for OFF
(for low-res screen) and 1 for
ON (for high-res screen).
Bit 6: Extended Background
Colour Mode (see my article
in the March 1986 issue of
Your Commodore). The bit is
0 for OFF and 1 for ON.
Bit 7: Position of Video
Matrix. 0 sets the video matrix
address to 2048 for low-res
mode. 1 sets the address to
the start of the luminance-
table for high-res mode.
Therefore the bit is 0 for low-
res and 1 for high-res.
For example to set a
normal low-res screen bits 0.2
and 3 should be set. the rest of
the bits should be reset.
Therefore the data byte
would be 1+4+8=13=$OD. For
a standard high-res screen
(non-multicolour) the byte
should be 128*32+8+1=169
=$A9.
Operating
Instructions
To turn on the split screen
routine type: SYS 1536.
To turn off the split screen
routine type: SYS 1568.
Then to set up a simple
split screen with the top half
of the screen in high-res and
the bottom half in low-res:
POKE 209,4 — for (2 splits x 2)
POKE 210,0 — split at top of
the screen
POKE 211,169 -data byte for
1st high-res split
POKE 212,97 — for a split at
the 12th line
POKE 213,13 — data byte for
2nd split (low-res)
SYS 1536 - turn it ON.
The GRAPHIC commands
do not have an effect -any
more, but serve their purpose
in specifying which window
we are using in Basic E.g.
GRAPHIC 0 specifies low-res,
GRAPHIC 1 specifies high-res
and GRAPHIC 3 specifies
high-res multicolour mode.
Also to clear a particular
screen put a one after the end
of the GRAPHIC command.
For instance, if you have
entered the above commands
in you should now see
rubbish on the top half of the
screen. Type GRAPHIC 1.1
and the top high-res window
will clear. Note that either
GRAPHIC 2.1 or GRAPHIC 4.1
ear*
& both
high resolution screens
simultaneously.
Now type CIRCLE.150.45.
45 (don't forget the initial
comma) to draw a circle in the
high-res window.
Then type PAINT.150.45,
to fill the circle in.
Finally type SYS 1568 toget
back to normal.
The above example
should have given you some
ideas on how to use split
screens, but does not convey
much of the power of these
routines. Figure 5 lists a
demonstration program
which is designed to show up
to four screens in action.
Datamaka
The following routine,
although not having much to
do with split screens, is an
important utility when
dealing with machine code
and data. This routine was
used when I printed the code
in this and the previous two
installments of Programming
the C-16. Basically it turns a
given block of code into DATA
statements with the option of
a checksum at the end of each
line. This program greatly
reduces the amount of time
you spend turning your
machine code games etc. into
data so that you can send
them to Your Commodore!
Figure 6 shows the
DATAMAKA program. When
the program is RUN enter the
START ADDRESS and END
ADDRESS of the code in
response to the questions.
Next enter the starting Basic
line number of the block of
DATA statements in response
to LINE NUMBER ? and the
step between line numbers in
response to STEP FOR LINE
NUMBERS > Lastly enter "Y"
or "N" in response to
CHECKSUM(Y/N)? depend-
ing on whether you want a
checksum (sum of all the
numbers in a line and a useful
check) at the end of each line.
The program then goes off
and constructs the DATA
statements. Note that it ends
the last line with a r -1\
In setting up the DATA
statements one or two tricks
are used, notably the
automatic execution of the
lines putting them into
memory once every five data
statements have been
displayed on the screen. This
is done by POKEing
characters into the keyboard
buffer so that, when the end
of line 15100 is reached,
commands are stored in the
keyboard buffer to make it
enter these lines into
memory. The actual charac-
ters are a HOME directing the
cursor to the top of the
screen, followed by six ENTER
instructions. The number of
characters in the keyboard
buffer is POKEd into the
'index to keyboard queue'
register at address 239 in line
15100.
The other interesting
technique employed is the
way the program is restarted
automatically to continue
DATAMAKAing. Every time a
new DATA line is ENTERed
into memory the computer
wipes all the variables, so all
the information on end
addresses etc. is lost. To
overcome this a line is printed
on the screen (by line 15030)
that records all the variables
in the form of commands, for
instance, S=15020:P=1000:
and so on at the end of each
group of five DATA lines
followed by a GOTO 15010.
When the C-16 executes this
line all the variables are
restored and the program
continues execution.
The variable A in line 1000
should be set to the start
address of the code. Line
10020 checks the sum of the
numbers in each line with the
checksum value and if they
do not agree the program
exits with 'DATA ERROR IN'
followed by the offending
line number. This program
line should be changed to
10020 LOOP and line 10010
should change to
10010 POKE A,D:A=A+1
if the checksum mode was
not specified when the data
was generated. To put this
program at the start of the
data and delete the rest of
DATAMAKA delete line 500
then type DELETE 15000-
15100.
Well, that concludes this
month's article, I hope it
provided some useful
routines and some food for
thought. Next time I shall be
applying this and other
routines to creating extra
memory on the C-16 and
showing how to have 4K for
Basic in high-res mode and
still have untouched high-res
and low-res screens.
Impossible? Reserve your
copy at the newsagents now!
START: 10000 ORB $0600
10100 :L1 LDA $FF1D
10110 CMP 1123
10120 DNE R:U
10150 LDA l$63
10160 STA $FF15
10170 STA IFF19
10200 :L2 LDA $FF1D
10210 CMP 10
10220 BNE RtL2
10250 LDA H7!
10260 STA IFF15
10270 STA IFF19
10300 JMP :L1
» OK.
10000 A=1536:D0:B=0:F0RCMT0
16: READD: IFD=-1THENPRINT"0K.
.':END
10010 8=B*D:PQKEA,D:A=A+1:NE
XT: READD
10020 IFDOBTHENPRWDATA E
RROR IN LINE'(PEEK163)+256IP
EEK(64):END:ELSELO0P
20000 DATA 173,29,255,201,12
3,208,249,169,99,141,21,255,
141,25,255,173, 2517
20010 DATA 29,255,201,0,208,
249,169,113,141,21,255,141,2
5,255,76,0, 2138
20020 DMA 6,0,0,0,0,0,0,0,0
,0,0,0,0,0,0,0, 6,-1
|PR06RAH: FIGURE 3|
START:
10000 jSPLIT SCREEN 16
10010
; (01986 JOE NICHOLSON
10020
0R6 $0600
10100
10110
•ON SPLIT SCREEN
10120
:0N SEI
10130
LDA l$30
10140
STA 10314
10150
LDA 1106
10160
STA $0315
10200
LDA 11
10210
STA $D0
10220
LDA $D2
10230
STA $FF0B
10240
LDA $FF0A
10250
AND MFE
10260
ORA #$02
10270
10280
10290
10300
10310
10320
10330
10340
10350
10360
10370
103B0
11000
11010
11020
11050
11060
11070
11100
11110
11120
11130
11140
11150
11160
11170
11200
11210
11220
11230
11250
11260
11270
112B0
11290
11300
11310
11350
11400
11410
11420
11430
11440
11450
11460
11470
U4B0
11490
11500
11510
11520
12000
12010
12100
12110
12120
12130
12140
12150
12160
12170
12180
STA $FF0A
CLI
RTS
■
I OFF SPLIT SCREEN
:0F SEI
LDA l$0E
STA $0314
LDA #$CE
STA $0315
CLI
RTS
[INTERRUPT SERVICE ROUTINE
0R6 $0630
LDA $FF09
AND l$02
BNE RiRA
:NR BIT $07DB
BPL R:EA
LDA $FD01
STA $0704
BPL R:EA
JSR $EA95
JSR $EA5B
:EA JSR $E3E4
LDA $FF09
AND 12
BEG R;EX
STA $FF09
LDX $D0
LDA $D2,X
INC $00
STA $FF0B
LDA $D0
CUP II
BEQ R:CL
:EX J HP $FCBE
:CL JSR $CFBF
JSR $CECD
LDA $FB
PHA
LDA 10
STA $FB
PHA
CLI
JSR $DBU
PLP
PLA
STA $FB
J HP $FCBE
I
; PERFORM SPLIT
:RA LDX $D0
LDA $D2,X
STA $DB
AND 14
STA $DA
LDA IFF12
AND 1251
ORA $DA
TAX
CI 6
12182 IDA
12184 AND
12186 BNE
12188 LDA
12190 BNE
12192 :HI
12194 :SU
12200 LDA
12210 AND
12220 5TA
12230 LDA
12240 AND
12250 ORft
12260 TAY
12300 LDA
12310 AND
12320 ASL
12330 ASL
12340 ASL
123S0 5TA
12360 LDA
12370 AND
12380 ORA
12520 STX
12530 STY
12540 STA
12600 INC
12610 LDA
12620 CHP
12630 BNE
12650 LDA
12660 STA
12700 :NB
IDB
1128
R.-HI
18
R:SU
LDA I07FB
STA SFF14
IDB
1104
IDA
IFF06
1151
IDA
IDB
13
A
A
A
IDA
IFF07
•231
IDA
IFF12
IFF06
IFF07
IDO
IDO
ID1
R:NB
10
IDO
J HP :NR
10000 A=1536:DQ:B«0:F0RC*1T0
16: READD: IFD S -1THENPRINT"0K.
."iEND
10010 B=B+D : POKEA, D: fi-fl+1 : NE
XT: RE ADD
10020 I FD< >BTHENPR I NT ■ DATA E
RROR IN LINE";PEEK(63)+256IP
EEK{64):END:ELSEL00P
20000 DATA 120,169,48,141,20
,3,169,6,141,21,3,169,1,133,
208,165, 1517
20010 DATA 210,141,11,255,17
3,10,255,41,254,9,2,141,10,2
55,88,96, 1951
20020 DATA 120,169,14,141,20
,3,169,206,141,21,3,88,96,0,
255,0, 1446
20030 DATA 173,9,255,41,2,20
8,75,44,216,7,16,14,173,1,25
3,141, 1628
20040 DATA 212,7,16,6,32,149
,234,32,91,234,32,228,227,17
3,9,255, 1937
20050 DATA 41,2,240,18,141,9
,255,166, 208, 181, 210, 230, 20B
.141.11,255, 2316
20060 DATA 165,208,201,1,240
,3,76,190,252,32,191,207.32,
205,206,165, 2374
20070 DATA 251,72,169.0,133,
251,72,88,32,17,219,40,104,1
33,251,76, 1908
20080 DATA 190,252,166,208,1
81,210,133,219,41,4,133,218,
173,18,255,41, 2442
20090 DATA 251,5,218,170,165
,219,41,128,208,4,169,8,208,
3,173,251, 2221
20100 DATA 7,141,20,255,165,
219,41,104,133,218,173.6,255
,41,151,5, 1934
20110 DATA 218,168,165,219,4
1,3,10,10,10,133,218,173,7,2
55,41,231, 1902
20120 DATA 5,218,142,18,255,
140,6,255,141.7.255,230,208.
165,208,197, 2450
20130 DATA 209,208,4,169,0,1
33,208,76,55,6,255,0,255,0,2
55,0, 1833,-1
5 6DT01000
10 CDL0R4 , 1 ; CQL0R1 , 2 , 7: COLOR
0,liDRAN,3,3T0148,3T0148,92T
Q3,92TQ3,3
17 CIRCLE, 148,3,30, ,180,270:
PAINT,140,4
20 C0L0R2,5,5!C0L0R3,5,6
30 DRA«,55,50T010,60T050,40
T060,3QT065,28:DRAW3,65,28T0
70,27T080,3l
40 DRAW3,B0,3lT0U8.22TO85,4
OT087,75T055,50
50 DRAM2.87.75TD65.28
60 PAINT2,20,56,1:PAINT3,70,
30,1: RETURN
1000 POKE209,2:POKE210,0:POK
E211,13:SY51536
1005 C0L0R0,1:C0L0R1,2:C0L0R
4,7,4
1010 GRAPHIC4, 1:PRINT" (HOME)
SETTING UP ONLY ONE SPLIT: 'i
LIST1000
1030 PRINT' IS EQUAL TO NO SP
LIT SCREEN AT ALL. ":BETKEYAI
1050 PRINT"(CLR)":LISTUOOiP
RINT"SET5 UP A 2ND SPLIT: - :C
0L0R0,6.5:6RAPHIC1,1
1100 SYS1568:P0KE209,4:P0KE2
12,57:P0KE213,169:SYS1536
1110 CHAR,9,11."THIS TIME IN
H16H RES. 1
1120 F0RA=1T020STEP2:BQX,64-
A,80-A,256+A,104*A,B,B:NEXT:
GETKEYAI
1200 PRINT"(CLR)":LIST1250:P
RINT'SETS THE 3RD SPLIT"
1250 SY51568:P0KE209,6:P0KE2
14,129:P0KE215,77:SYS1536
1290 C0L0R3,5.5:C0L0R0,1
1300 POKE65304,98:PRINT" (DOW
N) (DOWN) (DOWN) (DOWN) (DOWN) ID
OWN) (DOWN) (DOWN) (DOWN) (DOWN)
(DQNN)THIS (RVSMIQFF) >/ E
XTENDED IRV8H»- rf l-r//-|0FF)
1310 PRINTSPC ( 18) *\l " : SETK
EYAI
1400 PRINT" (HOHE) F INALLY" : LI
ST1450:PRINT"SETS THE 4TH SP
LIT TO NULTI COLOUR'
1410 PRINT-HI-RES NODE:"
1450 SYS156B:P0KE209,8:P0KE2
16,161:P0KE217,171:SYS1536
1455 6RAPHIC3:F0RA=20T024:CH
AR.O.A,"
■;NEXT
1460 COL0R2,7,4:C0LORl,8,6:F
QRA=1TQ40:B=INT(RND(0)I360)
1470 Y=INT(RND(0)I40)+16I: X=
INT (RND (0) » 150) : BOX INT (RND (0
H3)+1,X,Y,X*10,Y+10,B,1:NEX
T
1480 GETKEYAI: F0RA=1T016: FOR
B*0T07 : C0L0R3, A, B : NEXT: NEXT
2000 C0L0R4 , 1 : C0L0R1 1 7 : GRAPH
IC4.1
2010 SVS1568: P0KE209, 2: P0KE2
10,0:POKE211,i3:SYS1536
2015 PRINT' (HOME) (DOWN) (DOWN
) (DOWN) (DOWN) (RGHT) (R6HTJ (R6
HT) SETT INB UP THE GALAXY... (
DOWN) (DOWN) (LEFT) (LEFT) (LEFT
) (LEFT)PLEASE WA1T.":G0SUB10
2020 SYS1568:P0KE209,4:P0KE2
ll,17i:P0KE212,97:P0KE213,13
:SYS1536
2050 PRINT" (DOWN) (DOWN) (DOWN
HDOWNKDOWNJCONDITION (RED)
RED(WHT) " , "STARDATE: 243. 2"
2060 PRINT-ENERGY: 42346", 'QU
ADRANT:10.17"
2070 PRINT'SHIELDS:500'
2100 PRINT" (DOWN) (RED)A MUTA
NT KLIN60N HAS ENTERED THIS
QUADRANT! !"
2110 PRINT" IWHTISCQTTIE SAYS
THAT IF WE DON'T GET SOME
DILI TH1UM CRYSTALS SOON THE
SHIP IS IN'
2120 PRINT" IMMINENT DANGER 0
F EXPLODING!"
2150 VQL7:FDRA=1TQ6:FQRB*500
TO t OOOSTEP 1 0 : SOUND 1 , B , 1 : SPUN
D2, 1000-B. 1:NEXT:NEXT
2160 6RAPH I CO : FOR A» 1 6T023 : CH
AR,0,A,'
": NEXT
2170 INPUT" (UP) (UP) (UP) (UP) (
UP)(UP)(UP)HHAT ARE YOUR ORD
ERS CAPTAIN"; Al
2180 IFAIO'FIRE'ANDAIO'TOR
PED0"ANDAIO"SH00T"THEN60T02
160
2200 PRINT-FIRE WHEN READY' ;
: GETKEYAI
2210 PRINT" (U30)IRVSiFIRE(
OFF) (1132) ":F0RA=1023T0700ST
EP- 1 : SOUND 1, A , 1 : SDUND2 . A- 1 00
,1:NEXT
2220 SQUND3,500,200:PRINT"IY
EDA HIT!'(WHT)':F0RA«7T0OST
EP-1:F0RB»16T02STEP-1
2230 CDL0R3, B, A: NEXT : NEXT: 6E
TKEYAI:C0L0R3,5,6
I PR06RAH; FISURE~&]
5000 60T015000
10000 A=4096:DO:B=0:FORC=1TQ
16:READD:!FD=-1THENPRINT"0K.
.':END
10010 B=B+D: POKEA. D: A=A*1 : NE
XT:READD
10020 IFDOBTHENPRINT'DATA E
RROR IN LINE":PEEM63)*256IP
EEK(64):END:ELSEL00P
15000 INPUT "START ADDRESS"; A
:INPUT"END ADDRESS" ; F : INPUT"
LINE NUMBER" ;D
15005 INPUT"STEP FOR LINE NU
MBERS'.'H: INPUT-CHECK SUM it/
N) ";AI
15010 PRINT"(CLR)";:F0RC«1T0
3: PR INTO" DATA" ;
15020 E«0:FQRB*OT015:PRINTPE
EK ( A+B) : RIGHTS ( * (LEFT) (LEFT)
(LEFT) (LEFT) (LEFT)", LENfSTRI
IPEEK(A*B))>+1M
15021 IFBTHENPRINT", ": :ELSEP
RINT- ";
15022 PRINTRIGHTK-(RGHT) (RG
HT) (RGHT) (RGHT) ".LENISTRKPE
EK(A+B)M-1);
15024 E*E*°£EK(A+B) :NEXTB:D a
D*H:A=A+16:IFAI=-Y-THENPRINT
"i "E"i
15025 IFA>FTHENPRINT",-1":60
TD15100
15030 PRINT:NEXTC:PRINT"A*-A
";D="D":F="F":H="H':AI»"CHRI
(34iAICHRI(34)":60T015010-
15100 P0KE239.C*l:P0KEn:9,l
9:FOR6«1320T01325:POKEG,13:N
EXT
Daryl Bowers brings
you close to the
completion of your
own arcade game.
THIS MONTH'S INSTAL-
brings us to the point where
we have a playable game.
There are two more
insertions into the main loop
and a new "FINAL" routine.
'DEDCHK' simply calls the
collision detection routines.
The hardware sprite collision
facility has a serious drawback
— it tells you when one sprite
has collided with another, but
not which one it has collided
with. This is fine for games
such as Jet Set Willy, where
any sprite collision indicates
the death of the player, but in
1 w
1570 \
ffC JSR DEAD
12220
i
1580
JSR DEDCHK
12230 CHKIT
■lift
12240
1
12250
CLC
11800 FINAL
JSR HAIT3
12260
ADC I4B
11810
JSR RVARS
12270
LSR A
11820
JSR INIT
12280
LSR A
11630
RTS
12290
LSR A
11840
i
12300
TAX
11850
12310
LDY 17
11860
i
12320 L00P31
11670 DEDCHK
12330
LDA I06D0.X
11860
1
JSR R0ADCHK
12340
CMP 1102
11890
12350
BEQ 60TIT
11900
JSR BIKECHK
12360
DEX
11910
JSR FLYCHK
12370
DEY
11920
JSR BRDCHK
123B0
BNE L00P31
11930
(
12390 NOT IT
RTS
11940
1
12400
(
11950
RTS
12410
t
11960
I
12420 GOT IT
11970
-
1
12430
1
11980
I
12440
DEC RDDEDEL
11990 R0ADCHK
12450
BNE N0TIT
12000
|
I
12460
LDA 1100
12010
12470
STA RDDEDEL
12020
LDY STAGE
12480
LDA FOOD
IDA JUMPTYPE
12490
cup i'0'
12040
BNE BI64
12500
BEO DEDED
12050
1
12510
DEC FOOD
12060
LDA SPTAB.Y
12520
RTS
12070
TAX
12530 DEDED
12080
LDA XTAB2»Y
12540
STA F00D+1
12090
JHP TEST
12550
LDA 11
12100
!
12560
STA DED
12110 BIG4
12570
RTS
12120
*
12580
*
12130
LDA SPTAB2.Y
12590
i
12140
TAX
12600
RTS
12150
LDA ITAB2B.Y
12610
;
12160
i
12620
i
12170 TEST
12630 BIKECHK
12180
12640
i
12190
CPX 1200
12650
i
12200
BE0 CHKIT
12660
*
12210
RTS
12670
12680
12690
12700
12710
12720
12730
12740
12750
12760
12770
12780
12790 BI66
12800
12810
12820 TEST2
12830
12B40
12850
12860
12670
12860
12890 DEDED2
12900
12910
12920
12930
12940
12950
12960
12970
12980
12990 FLYCHK
13000
13010
13020
13030
13040 N0TFLY2
13050
13060 JUHPIN
13070
13080
13090
13100
13110
13120
13130
i
LDA FRENCH
CLC
ADC 140
STA IAC
LDY STA6E
LDX JUHPTYPE
BNE BI66
LDA XTAB2.Y
JMP TEST2
I
LDA XTAB2B.Y
(
i
CUP IAC
BCC DEDED2
RTS
i
i
LDY STAGE
LDX JUHPTYPE
BNE JUHPIN
RTS
I
(
LDA SPTAB2.Y
CHP #204
BNE N0TFLY2
(
LDA FLYH0VE
BEQ N0TFLY2
Programming
most games this will not
suffice. For this reason I have
detected collisions by
comparing the X and Y co-
ordinates of the Frog and the
other characters.
'ROADCHK' is the first
routine to be called. This
checks if the Frog is sitting in a
puddle. The code from the
start to 'CHKIT' is used to
ascertain that the Frog is
sitting down. To check this
the current sprite definition is
found — if this is equal to 200
then the co-ordinates are
checked.
To see whether the
characters underneath him
are puddle ones, we must first
find the position of the
relevant characters. Remem-
ber that the first visible sprite
X co-ordinate is 31 and that
the frog graphics start 17
pixels into the front sprite we
must subtract 48 from the X
position. If we divide this
value by eight (the width of
one character in pixels) then
we have the X character
position of the Frog.
'LOOP3T checks to see if
the next seven characters are
puddles or not, and if they are
we go to 'GOTIT'. At this
point we decrease the delay
'RDDEDEL' to reduce the
damage sustained for
each contact, then if this has
reached zero we reduce the
'FOOD' left.
'BIKECHK'isavery simple
check. We take the
Frenchman's position, add 48,
and store this in SAC. If the
frog's X position is less than
this, he is dead.
'FLYCHK' follows the
same comparisons, with the
addition that the Frog must
be jumping, and if a collision
takes place, the Fly's position
is reset to the start again.
'SVARS' transfers the
variable block to the end of
the program in order that they
can be retrieved at the start of
a new game. 'RVARS' does
exactly the opposite, and is
called in 'FINAL' to reset all
variables to their original
values.
The final routine is
'BRDCHK' which operates in
the same way as 'FLYCHK'.
Next month — frills.
13140
13150
13160
13170
13180
13190
13200
13210
13220
13230
13240
13250
13260
13270
13280
13290 YESFLY
13300
13310
13320
13330
13340
13350
13360
13370
133B0
13390
13400
13410
13420 FINFLY
13430
13440
13450 HITEST
13460
13470
13480
13490
13500
13510
13520
13530
13540
13550
13560
13570
13560
13590 SVARS
!
LOfi FLYXHI
BNE HITEST
(
LDA XTAB18, Y
CLC
A0C 120
CUP FLVXL0
BCS N0TFLY2
CLC
ADC 115
BCS HITEST
CUP FLYXL0
BCC N0TFLY2
I
LDA 10
STA FLYM0VE
LDA II
STA FLYXHI
LDA 1255
STA FLYXL0
JSR PRNTFLY
LDA »'9'
STA FOOD
STA F00D+1
LDX 12
JSR L00P25
RTS
i
(
I
LDA XTAB1B, Y
CMP MEB
BCC FINFLY
LDA FLYXL0
CMP 120
BCC YESFLY
RTS
i
i
13600
13610
13620
13630
13640
13650
13660
13670
13680
13690
13700
13710 L0QP36
13720
13730
13740
13750
13760
13770
13780
13790
13800
13810
13820 RVARS
13830
13B40
13850
13860
13870
13B80
13890 .
13900
13910
13920
13930
13940
13950 L00P37
13960
13970
13980
13990
14000
14010
14020
14030
14040
14050
i
LDA IVARS&255
STA $FB
LDA IVARS/256
STA $FC
LDA IFINISH4255
STA IFD
LDA IFINISH/256
STA IFE
LDX 13
LDY 10
LDA (IFB),Y
STA IIFDi ( Y
DEY
BNE L0DP36
INC IFC
INC IFE
DEX
BPL L00P36
RTS
I
I
LDA IVARS1255
STA IFB
LDA IVARS/256
STA IFC
LDA IFINISH1255
STA IFD
LDA IFINISH/256
STA IFE
LDX 13
LDY 10
LDA (IFD),Y
STA (IFB>,Y
DEY
BNE L00P37
INC IFC
INC IFE
DEX
BEG REMAIN
BPL L00P37
RTS
14060 REMAIN
14070
140B0 BRDCHK
14090
14100
14110
14120
14130 N0TBRD2
14140
14150 JUHPIN2
14160
14170
14180
14190
14200
14210
14220
14230
14240
14250
14260
14270
14280
14290
14300
14310
14320
14330
14340
14350
14360 YESBRD
14370
14380
14390
14400 HITEST2
14410
14420
14430
14440
14450
14460
14470
14480 FINBRD
14490 FINISH
LDY ISTARH255
JHP LD0P37.
I
LDY STAGE
LDX JUMPTYPE
BNE 0UHPIN2
RTS
f
LDA SPTAB2.Y
CMP 120*
BNE N0TBRD2
t
LDA BRDM0VE
BEG NDTBRD2
i
LDA BRDXHI
BNE HITEST2
LDA XTAB1B.Y
CLC
ADC 120
CMP BRDXL0
BCS N0TBRD2
CLC
ADC 115
CMP BRDXL0
BCC N0TBRD2
I
LDA II
STA DED
RTS
i
LDA XTAB1B.Y
CMP IIEB
BCC FINBRD
LDA BRDXL0
CMP 120
BCC YESBRD
RTS
IP
—
K Otton and A
Adams add yet
another dimension to
your computer.
THE FOLLOWING PROGRAM
is for use on files saved whilst
using Telcom 64 (Your
Commodore, April-May
1986). It provides an easy
means of editing and
changing a file with the
choice to resave with a
different, and perhaps, more
appropriate name.
All the functions are
available via the main menu
(Figure 1) and perform the
following tasks.
View File
This is a copy of the view file
function found in Telcom 64.
It allows the file to be viewed
on the screen.
Use the space bar to pause
the display and run-stop to
exit back to the menu.
Edit File
is function gives access to
the file (assuming one has
been loaded in) and allows
changes to be made.
For example, a file
downloaded from a bulletin
board could perhaps contain
two pictures: (1) Snoopy, (2)
pinup (see Figure 4).
Using the cursor left/right
keys you can step through the
file. To step through at high
speed cursor up/down
should be used as this steps in
blocks of 255 bytes instead of
single ones.
Delete and insert keys
work the same as normal
(although slower), however,
for large deletes, FT and F2
come into there own.
When the start of delete
position is reached Press Fl.
"Delete from xxx" appears on
the screen (where xxx -
current position). Now step
through to the end of delete
position and Press F2. The
portion between pressing F1
and F2 is now deleted and the
file is viewed from the point
where Fl was first pressed.
If an error was made when
Fl was pressed it can be
repressed to give a new start
position .F2 selection is final
and cannot be changed.
10 IFA s OTHENA«l:L0AD"EDIT0RC
000-CEE8",a,l
20 SYS49152
PROGRAM: EDITOR
2000 F0RL'0TO236:ClC"0iF0RD'O
TD1S : READA: CX-CX+A: P0KE49152
+K16+D, AiNEXTD
2010 READA: 1FAOCXTHEHPRINT"
ERROR IN LINE";2040+(L!10)iS
TOP
2020 NEXTL
2040 DATA76,207, 201, 0,157,0,
48,232,208,230,32,68,229,32,
15,201,1956
2050 DATA169,B,32,210 t 255 t 16
9,14,32,210,255,162,0,189,11
6,192,157,2170
2060 DATA130,4,189,135,192,1
57,170,4,189,154,192,157,250
,4,189,173,2289
2070 DATA192,157,74,5,189,19
2,192,157,154,5,189,211,192,
157,234,5,2305
2080 DATA189,230,192,157,58 t
6.1B9, 249,192, 157, 138,6,189,
12,193,157,2314
2090 DATA21B,6,189,31,193,15
7,42,7,232,224,19,208,191,96
,162,0,1975
2100 DATA169.1, 157,0,216,157
,0,217,157,0,218,157,0,219,2
32,224,2124
2110 DATA0, 208, 239,96, 42,42,
32,32,69,68,73,84,79,82,32,7
7,1255
2120 DATA69,78,B5,32 t 32,42,4
2,46,46,46,46,46,46,46,46,46
,794
2130 DATA46,46,46,46,46,46,4
6,46,46,46,49,32,86,73,69,87
,856
2140 DATA32,70, 73,76, 69,46, 4
6,46,46,46,46,70,49,50,32,69
,866
2150 DATA6B, 73, 84, 32, 70,73,7
6,69,46,46,46,46,46,46,70,50
,941
2160 DATA51, 32, 70, 73, 76,69,3
2,76,69,78,71,84,72,46,46,46
,991
2170 DATA46,70,51,52,32,76,7
9,65,68,32,70,73,76,69,46,46
,951
2180 DATA46,46,46,46,70,52,5
3,32,83,65,86,69,32,70,73,76
,945
2190 DATA69, 46,46,46, 46,46,4
6,70,53,54,32,72,69,88,32,84
,899
2200 DATA79, 32,66,65,83, 73,6
7,46,46,46,70,54,53,32,80,82
,976
2210 DATA73, 78,84,32,70, 73,7
6,69,46,46,46,46,46,70,55,56
966
2220 DATA32,69,88,73,B4,32,8
4,79,32,66,65,83,73,67,46,46
,1019
2230 DATA70,56,255, 32,68, 229
,173,0,48,208,20,160,193,169
,205,32,1918
2240 DATA30, 171,160, 193,169,
185,32,30,171,32,228,255,240
,251,96,169,2412
2250 DATAO.133,251, 169,48,13
3,252,32,94,192,160,0,177,25
1,208,3,2103
2260 DATA76, 165, 193,32,210,2
55,32,133,193,32,117,193,230
,251,208,2,2322
2270 0ATA230, 252,76, 92,193,1
69,20,141,234,193,160,255,13
6,208,253,206,2818
2280 DATA234,193,20B,246,96,
Communications
32,228,255,240,11,201,3,208,
3,76,162,2396
2290 DATA193, 201, 32,240, 1,96
,32,228,255,201,32,208,1,96,
201,3,2020
2300 DATA208.244, 104, 104,96,
160,193,169,218,32,30,171,16
0,193,169,185,2436
2310 DATA32,30, 171,32,228,25
5,240,251,96,13,17,17,17,32,
80,82,1593
2320 DATA69,83,83,32,65,7B,8
9,32,75,69,B9,32,34,17,17,32
,896
2330 DATA32, 78, 79, 32, 70, 73,7
6,69,32,34,13,13,32,69,78,68
,848
2340 DATA32,79,70,32,70,73,7
6,69,32,34,0,0,0,170,4,190,9
31
2350 DATA85, 255, 169,0,133,25
1,169,48,133,252,160,0,177,2
51,240,9,2332
2360 DATA230,251,208,2,230,2
52,76,252,193,165,251,141,19
2,194,165,252,3054
2370 DATA141, 193, 194,96,32,2
42,193,32,68,229,160,194,169
,196,32,30,2201
23B0 DATA171, 162,0, 169,48,32
,205,189,32,145,194,169,48,3
2,159,194,1949
2390 DATA169,0,32,159,194,16
0,194,169,216,32,30,171,174,
93
2490 DATA6B, 82, 69, 83, 83, 32, 3
2,34,13,29,17,17,69,78,68,32
,806
2500 DATA65 , 68 , 68, 82 , 69 , 83, 8
3,32,32,32,32,34,13,17,17,32
,759
2510 DATAB4,79,84,65,76,32,6
6,89,84,69,83,32,32,32,32,34
,973
2520 DATA19, 34, 19,36,36,34,1
3,17,17,32,73,78,83,69,82,84
,726
2530 DATA83,32,76, 69,70,84, 3
2,32,32,34,32,34,13,17,17,32
,689
2540 DATA84,79, 84, 65, 76,32,6
6, B9,B4, 69,83,32,32,32,32,34
,973
2550 DATA19.34, 19,36,36,34,1
3,17,17,32,73,78,83,69,82,84
,726
2560 DATA83, 32,76, 69, 70,84, 3
2,32,32,34,170,169,48,133,25
2,169,1465
2570 DATA4, 133,251, 169,8,133
,254,169,1,133,253,160,0,177
,251,240,2336
2580 DATA46,201, 13,240,64, 14
1,246,195,200,177,251,141,24
5,195,32,174,2561
2590 DATA195,173,247,195,160
,0,145,253,24,165,251,105,2,
133,251,165,2464
2690 DATA1, 32,186,255,169,17
8,160,197,32,30,171,162,15,1
42,157,197,2084
2700 DATA32, 243, 196, 192, 0,20
8,7,173,149,197,201,84,208,2
42,173,149,2454
2710 DATA197, 201, 68,208,66,1
69,64,141,20,2,169,48,141,21
,2,169,1686
2720 DATA58,141, 22,2,160,0,1
85,0,2,153,23,2,200,204,155,
197,1504
2730 DATA20B,244,169,44,153,
23,2,169,80,153,24,2,173,148
,197,201,1990
2740 DATA83,208, 12, 169,44, 15
3,25,2,169,87,153,26,2,200,2
00,200,1733
2750 DATA200, 200,200,200,76,
138,196,172,155,197,240,14,1
60,0,185,0,2333
2760 DATA2, 153,20,2,200,204,
155,197,208,244,152,162,20,1
60,2,32,1913
2770 DATA1B9,255,169,160,133
,178,96,169,76,141,148,197,1
69,191,141,0,2412
2780 DATA2,32,255,195,169,0,
162,0,160,48,32,213,255,176,
41,96,1836
2790 DATA169,B3,141, 148,197,
169,191,141,0,2,32,255,195,1
69,0,133,2025
2800 DATA251, 169, 48, 133,252,
Run-stop will place an end
ol file marker (chequered
flag) al the position above the
arrow, this point cannot be
passed until it is over written
with a space or charactor.
Shifted run-stop will exit
to the menu. Pressing any
valid key will overwrite the
original character above the
arrow and then step on to the
next.
Remember in this section
an up arrow (|) denotes a
return and can affect both the
printout and viewfile displays.
File Length
Displays the current file's
start/end address in
decimal/hex and the number
of spare bytes available
should you wish to type in
more details.
Load File
Fairly obvious this one, but it
should be noted that only one
error message is displayed for
both disk and tape regardless
of the actual error. It is
"ERROR LOAD/SAVE" and
could be any fault from 'file
not found' on disk to the tape
stop key being pressed on
tape player.
The filename must be
known, although the file
symbol will be placed in front
automatically as it is in Telcom
64.
Save File
This will resave the current
file up to the chequered end
of file marker. Any alterations
made in edit mode (option
two) will be saved and the
length of file can be made
longer or shorter by moving
the end of file market. This
allows one log file to be split
into shorter ones with only
the required information left
in them.
Hex to Basic -
If a hex file has been
downloaded (Figure 2) it
should be edited so that the
first digit is at current position
zero. An end of file marker
should be placed at the end of
the hex.
By selecting option six, the
hex will be converted to
ASCII and placed at 2048
onwards to build up a Basic
program in memory. On
192,194,173,2259
2400 DATA193, 194,32,205, 189,
32,145,194,173,193,194,32,15
9,194,173,192,2494
2410 DATA194, 32,159,194, 160,
195,169,6,32,30,171,56,169,3
,237,192,1999
2420 DATA194, 141, 194,194,169
,159,237,193,194,141,195,194
,174,194,194,173,2940
2430 0ATA195, 194,32,205, 189,
32,145,194,173,195,194,32,15
9,194,173,194,2500
2440 DATA194,32,159,194,160,
193,169,185,32,30,171,32,228
,255,240,251,2525
2450 DATA96, 169,32,32,210,25
5,32,210,255,169,36,32,210,2
55,96,72,2161
2460 DATA74,74,74,74,201,10,
144,2,105,6,105,48,32,210,25
5,104,1518
2470 DATA41, 15,201, 10, 144,2,
105,6,105,48,32,210,255,96,0
,0,1270
24B0 DATA0, 48,3,111,5,29, 17,
17,63,64, 65, 82,B4,32, 65,68, 7
2600 DATA252, 105,0,133, 252,2
4,230,253,208,2,230,254,76,9
1,195,24,2329
2610 DATA165,253,105,2,133,4
5,165,254,105,0,133,46,169,0
,200,145,1920
2620 DATA253, 200, 145,253,96,
230,251,208,2,230,252,76,91,
195,169,0,2651
2630 DATA141, 247,195,173,246
,195,201,58,144,15,41,15,24,
105,9,10,1819
2640 DATA10,10,10,141, 243,19
5,76,210,195,41,15,10,10,10,
10,141,1327
2650 DATA243,195,173,245,195
,201,58,144,11,41,15,24,105,
9,141,244,2044
2660 DATA195, 76,233, 195,41,1
5,141,244,195,173,244,195,13
,243,195,141,2539
2670 DATA247, 195,96,96, 14,85
,93,110,85,255,85,95,16,255,
65,32,1844
2660 DATA231,255,173,149,197
,162,1,201,84,240,2,162,6,16
0,0,169,2194
174,151,197,172,150,197,169,
251,32,216,255,2817
2810 DATA176,6,32, 183,255,20
8,1,96,32,231,255,169,125,16
0,197,32,2158
2820 DATA30,171,169,185,160,
193,32,30,171,32,237,196,96,
32,228,255,2217
2830 DATA240, 251, 96, 142,154,
197,232,169,46,32,210,255,20
2,224,0,208,2658
2840 DATA248, 174, 154, 197,232
,169,157,32,210,255,202,224,
0,208,248,169,2879
2650 DATA32, 162,0,157,1,2,23
2,224,20,208,248,160,0,140,1
53,197,1936
2860 DATA169, 164,32,210,255,
169,157,32,210,255,32,228,25
5,240,251,172,2831
2870 DATA153,197, 141, 152,197
,169,46,32,210,255,169,157,3
2,210,255,173,2548
2880 DATA152, 197, 201, 13,240,
45,201,20,208,13,192,0,240,2
07,136,169,2234
completion the program exits
to Basic and the new program
can be listed or saved as
normal.
Print File
This is an option to print out
the new edited file for a hard
copy. Again no check is made
to see if the device is present.
A choice of printer is given
when the program is first
started up.
Exit to Basic
This one speaks for itself.
Restart FILE EDITOR with
SYS49152.
Loader
For people using an 801/803
printer, only lines 10 and 50
are needed. 1520 users should
enter the other lines
depending on their require-
ments. The option of device
four for 1520 is only for those
with the modified 1520.
10 IF A = OTHEN A = 1 : LOAD
"FILE EDITOR".8,1
20 X = ?:REM 6 OR 4 FOR
DEVICE NUMBER
30 OPEN 6,X,6:PRINT«
6,1:CLOSE6:REM SET LOWER
CASE/SHIFTED UPPER CASE
40 OPEN 3,X.3:PRINT«
3.4:CLOSE3: REM SET To 80
COL MODE
50 SYS 49152
Figure 1
Main Menu
2) EDIT FILE
F2
4) LOAD FILE
F4
6) HEX TO BASIC
F6
8) EXIT TO BASIC ...
F8
Figure 2
Hex Example
FROM... Type P to Pause, S lo
Slop. "MOB01000A2A2 A2A2
A2A2A2A2A2A2A2A--
EDIT TO. 0801000A2A2A2
A2A2A2A2A2A2A
Note
Select option 6 and then save
or lisi as normal.
2890 DATA157, 32,210,255,76,2
9,197,41,127,201,32,144,192,
204,157,197,2251
2900 DATA240,1B7,173,152,197
,153,1,2,32,210,255,169,0,13
3,212,200,2316
2910 DATA76,29,197,200,140,1
55,197,169,13,32,210,255,96,
147,32,17,1965
2920 0ATA69,B2,82,79,B2,32,7
9,78,32,83,65,86,69,47,76,79
,1120
2930 0ATA68,68,58,34, 76,68,0
,0,13,3,15,4,8,15,64,48,542
2940 DATA5B,B3,48,4B, 32,32,3
2,32,32,32,32,32,32,32,32,32
,621
2950 DATA32,34,147, 5,70,73,7
6,69,32,78,65,77,69,32,34,32
,925
2960 DATA32,32,32,0, 0,170,0,
170,0,170,19,17,17,17,17,17,
710
2970 DATA17, 17, 17,17, 29,29,2
9,29,29,29,29,29,29,29,83,69
,510
2980 DATA76,69,67, 84,32,84,6
5,80,69,32,79,82,32,68,73,83
,1075
2990 DATA75,32,63,13,13,13,2
9,32,32,32,32,32,32,32,32,32
,526
3000 DAT A32 , 32 , 32 , 32 , 69 , 78 , 8
4,69,82,32,B4,32,79,82,32,6B
,919
3010 DATA34, 19, 17, 17, 17,29,3
2,32,32,32,32,32,32,32,32,32
,453
3020 DATA32, 32,83,69, 76,69,6
7, B4,32, 80,82,73,78,84,69, 82
,1092
3030 DATA13, 29,32,32,32,32, 3
2,32,32,32,32,32,32,32,45,45
,516
3040 DATA45,45,45,45,45,45,4
5,45,45,45,45,45,13,13,29,32
,627
3050 0ATA32, 32, 49, 46,46,56,4
8,49,47,56,48,51,32,32,32,32
,688
3060 DATA40, 49, 53, 50,53,41,1
3,13,29,32,32,32,50,46,46,49
,628
3070 DATA53,50,48,32,68,69,B
6,32,54,32,40,80,82,73,78,84
,961
3080 DATA69, 82,32,80, 76,79,8
4,84,69,82,41,13,13,29,32,32
,897
3090 DATA32, 51, 46, 46,49,53,5
0,48,32,68,69,86,32,52,32,40
,786
3100 DATA45,45,45,45,45,68,7
3,84,84,79,45,45,45,45,45,41
,879
3110 DATA13,13,13,13,29,32,3
2,32,32,32,32,32,32,32,32,69
,470
3120 0ATA78,84,69,B2, 32,49,4
4,50,32,79,82,32,51,46,34,20
8,1052
3130 DATA32,30,32,61, 32,82,6
9,B4,B5,B2,78, 32,32,32,32, 32
,B27
3140 DATA32,32,32, 102,32,61,
32,69,78,68,32,79,70,32,70,7
3,894
3150 DATA76.69, 32,32,102, 255
,255,255,255,255,255,255,255
,255,255,255,3116
3160 DATA255.30, 255,255,255,
255,255,255,255,255,255,255,
255,255,255,255,3855
3170 DATA255,255,255,255,32,
33,34,35,36,37,38,39,40,41,4
2,43,1470
3180 DATA44, 45, 46,47,48, 49, 5
0,51,52,53,54,55,56,57,58,59
,824
3190 DATA60, 61, 62,63, 0,1, 2,3
,4,5,6,7,8,9,10,11,312
3200 DATA12, 13,14,15,16,17,1
8,19,20,21,22,23,24,25,26,27
,312
3210 DATA28,29,30,31,96,65,6
6,67,66,69,70,71,72,73,74,75
,984
3220 DATA76,77, 78,79,80,81, 8
2,83,84,85,86,87,88,89,90,12
3.136B
3230 DATA124,125,126,127,128
,129,130,131,132,133,134,135
,136,137,138,139,2104
3240 DATA140, 141, 142,143,144
,145,146,147,148,149,150,151
,152,153,154,155,2360
3250 DATA156,157,15B,159,160
,161,162,163,164,165,166,167
,168,169,170,171,2616
3260 0ATA172,173,174,175,175
,177,178,179,180,181,182,183
,184,165,186,187,2872
3270 DATA188,1B9,190,191,192
,65,66,67,68,69,70,71,72,73,
74,75,1720
3280 DATA76,77, 78,79,80, 81, 8
2,83,84,85,86,87,88,89,90,21
9,1464
3290 DATA220 , 221 , 222 , 223, 224
.223,226,227,228,229,230,231
,232,233,234,235,3140
3300 DATA236,237,238,239,240
,241,242,243,244,245,246,247
,248,249,250,251,3896
3310 DATA252,253,254,255,255
,255,255,253,255,255,255,255
,255,255,255,255,4074
3320 DATA253,13,255,255,255,
255,255,255,255,255,255,255,
255,255,255,255,3838
3330 0ATA255, 255,255,255,32,
33,34,35,36,37,38,39,40,41,4
2,43,1470
3340 DATA44, 45,46,47,48,49,5
0,51,52,53,54,55,56,57,58,59
,824
3350 DATA60,61, 62,63,64, 65, 6
6,67,68,69,70,71,72,73,74,75
,1080
3360 DATA76,77,78,79,80,81,B
2,83,84,85,86,87,68,89,90,91
,1336
3370 DATA92,93, 94,95,0,65,66
,67,68,69,70,71,72,73,74,75,
1144
3380 DATA76, 77, 78,79,80, 81, 8
2,83,84,85,86,87,88,89,90,91
,1336
3390 DATA92,93,94,95,255,0,0
,255,255,255,255,255,255,255
,255,255,2924
3400 DATA255, 255,255,255,255
,255,255,255,255,255,255,255
,255,255,255,255,4080
3410 DATA255, 255,255, 255,32,
255,255,255,255,255,255,255,
255,255,255,255,3857
3420 DATA255,255,255,255,255
,255,255,255,255,255,255,255
,255,255,253,255,4080
3430 DATA255 , 255, 255, 255 , 255
,193,194,195,196,197,198,199
,200,201,202,203,3453
3440 DATA204, 205,206, 207, 208
,209,210,211,212,213,214,215
,216,217,218,255,3420
3450 0ATA255,255,255,255,255
,255,255,255,255,255,255,255
,255,255,255,255,4080
3460 DATA255, 255, 255,255,255
,255,255,255,255,255,255,255
,255,255,255,255,4080
3470 0ATA255,255,255,255,255
,255,255,255,255,255,255,255
,255,255,255,255,4080
J480 DATA255, 255, 255, 255,240
,163,201,131,208,1,96,201,15
7,206,26,32,2684
5490 DATA94, 192, 162,0, 169,42
,157,0,4,157,192,7,232,224,4
), 208, I860
3500 DATA245, 169,40, 133,251,
169,4,133,252,169,42,160,0,1
45,251,160,2323
3510 DATA39, 145,251, 165,251,
24,105,40,133,251,165,252,10
5,0,133,252,2311
3520 DATA 1 65 , 252, 20 1 , 7 , 20B , 2
27,165,251,201,192,208,221,9
6,201,201,32,2828
3530 DATA173, 195,201,201,49,
208,3,76,100,201,201,50,208,
3,76,109,2054
3540 DATA201,76, 118,201, 169,
4,162,4,160,7,76,127,201,169
,4,162,1841
3550 DATA6, 160, 0,76, 127,201,
169,4,162,4,160,0,76,127,201
,32,1505
3560 DATA186.255, 169,0,32, IB
9,255,32,192,255,169,0,133,1
06,169,48,2190
3570 DATA133, 107, 160,0, 177,1
06,240,23,141,194,201,162,4,
32,201,255,2136
3580 DATA173, 194,201,32,210,
255,230,106,208,232,230,107,
76,146,201,162,2763
3590 DATA4,32,201,255,169,13
,32,210,255,32,204,255,169,4
,32,195,2062
3600 DAT A255 ,96,71,31,76,93,
201,32,68,229,96,32,151,196,
96,32,1775
3610 DATA68, 229, 169, 1,141, 13
4,2,32,129,203,32,47,203,32,
10,192,1624
3620 DATA32, 228, 255,240,251,
201,133,208,9,32,51,193,32,1
0,192,76,2143
3630 DATA224,201, 201, 137,208
,9,32,124,202,32,10,192,76,2
24,201,201,2274
3640 DATA134, 208,9,32, 20, 194
,32,10,192,76,224,201,201,13
8,208,9,1888
3650 DATA32, 78, 202, 32, 10, 192
,76,224,201,201,135,208,9,32
,82,202,1916
3660 DATA32, 10, 192, 76, 224, 20
1,201,139,208,9,32,111,202,3
2,10,192,1871
3670 DATA76,224,201,201,136,
208,9,32,120,202,32,10,192,7
6,224,201,2144
3680 DATA201, 140,208, 3, 76,74
,202,76,224,201,32,68,229,96
,32,151,2013
3690 DATA196, 96,32,140,203,1
69,0,160,1,145,253,230,233,2
08,2,230,2318
3700 DATA254, 165,253, 141, 151
,197,165,254,141,150,197,32,
176,196,96,32,2600
3710 DATA73,195,32,68,229,10
4,104,96,32,80,201,96,32,68,
229,162,1803
3720 DATA40, 169,1, 157,223,21
7,169,96,157,223,5,202,208,2
43,169,30,2309
3730 DATA141, 28,6, 169,7,141,
28,218,160,0,169,32,153,236,
47,200,1735
3740 DATA192, 20,208, 248,32,2
23,202,169,47,133,252,169,23
6,133,251,173,2688
3750 DATA0,4B,240, 10,32, 191,
203,32,140,203,32,208,203,96
,162,0,1800
3760 DATA189,31, 206, 157,244,
5,232,224,9,208,245,160,206,
169,40,32,2357
3770 0ATA30,171, 160,193,169,
190,32,30,171,32,228,255,240
,251,96,160,2408
3780 DATAO.169,1, 153,43, 219,
153,123,219,185,208,198,153,
43,7,185,2059
3790 DATA226, 198,153,123,7,2
00,192,18,208,231,96,165,251
,141,27,206,2442
3800 DATA165,252,141, 26,206,
173,27,206,24,105,20,170,173
,26,206,105,2025
3810 DATAO, 141, 26,206,56,233
,48,141,26,206,32,205,189,16
9,32,32,1742
3820 DAIA210,255,32,210,255,
32,210,255,32,210,255,32,210
,255,96,32,2581
3830 DATA15, 201, 169, 202,160,
197,32,30,171,32,228,255,240
,251,201,84,2468
3840 D AT A240 ,4,201,68, 206 , 24
3,141,149,197,32,68,229,32,1
5,201,169,2197
3850 DATA17, 160,198,32, 30,17
1,32,228,255,240,251,201,49,
208,3,76,2151
3860 DATA109, 203,201, 50,208,
3,76,109,203,201,51,208,233,
141,195,201,2392
3870 DATA96, 165,251,24, 105,2
0,141,25,206,165,252,105,0,1
41,24,206,1926
3880 DATA96, 162,0,169,0,157,
0,48,232,208,250,96,169,48,1
33,254,2022
3890 DATA169.0, 133,253, 160,0
,177,253,240,9,230,253,20B,2
,230,254,2571
3900 DATA76, 150, 203, 165,253,
141,17,206,165,254,141,16,20
6,56,173,17,2239
3910 DATA206,233,20, 141, 19,2
06,173,16,206,233,0,141,18,2
06,96,160,2074
3920 DATAO, 177,251, 170, 189,2
44,198,153,224,5,200,192,40,
20B, 242, 96,2589
3930 DATA169, 144, 160, 206, 32,
30,171,32,251,202,169,170,16
0,206,32,30,2164
3940 DATA171, 174, 17,206, 173,
16,206,56,233,48,32,205,189,
169,32,32,1959
3930 DATA210, 255,32,210,255,
32,210,255,32,210,255,169,19
4,160,206,32,2717
3960 DATA30,171, 169,3,56,237
,17,206,170,169,159,237,16,2
06,142,29,2017
3970 DATA206, 141,28,206,32,2
05,189,169,32,32,210,255,32,
210,255,32,2234
3980 DATA210,255,32,210,255,
32,210,255,32,228,255,240,16
3,201,131,208,2917
3990 DATA1,96,201,157,20B,26
,165,252,201,47,208,6,165,25
1,201,236,2421
4000 DATA240, 11, 165,251,208,
2,198,252,198,251,32,191,203
,76,208,203,2689
4010 DATA201, 29, 208, 3B, 165, 2
52,201,159,208,6,165,251,201
,3,240,23,2350
4020 DATA165, 252,205, 18,206,
208,7,165,251,205,19,206,240
,9,230,251,2637
4030 DATA208, 2,230,252,32, 19
1,203,76,208,203,201, 148,208
,82,173,29,2446
4040 DATA206,208,5,173,28,20
6,240,69,165,251,24,105,19,1
41,15,206,2061
4050 DATA165, 252,105,0, 141,1
4,206,169,159,133,254,169,3,
133,253,160,2316
4060 DATAO, 177,253, 160, 1,145
,253,165,253,208,2,198,254,1
98,253,165,2685
4070 DATA2S4, 205, 14,206,208,
233,165,253,205,15,206,208,2
26,169,32,160,2739
4080 DATA20, 145,251,32,191,2
03,32,140,203,169,0,133,198,
76,208,203,2204
4090 DATA201, 133,206,28,165,
251,141,20,206,165,252,141,2
1,206,169,75,2382
4100 DATA160,206,32,30,171,1
69,255,141,30,206,32,251,202
,76,208,203,2372
4110 DATA201, 137,208, 107, 173
,30,206,240,99,165,251,133,8
7,165,252,133,2587
4120 DATA88, 173,20, 206, 133,8
9,173,21,206,133,90,36,165,8
8,229,90,1960
4130 DATA240,5,176,12,76,92,
At first the edit function
(F2} view of a file may seem
strange. Different boards
send out an assortment of
codes to make up a screen.
Figure 3
Note: *= return
— 15-spaces— WELCOME
TO — 15-spaces---
— 15-spaces — TELCOM 64*
Figure 3A
— 15-spaces — WELCOME
TO"
---15-spaces-- -TELCOM 64*
Note
The screen layouts shown in
Figure 3 and 3A will both give
the same result on screen.
However, when viewed, the
difference is quite consider-
able. In Figure 3 there are 15
spaces each side of
WELCOME TO' then another
15 to 'TELCOM 64' giving a
total of 65 bytes. In Fig 3A the
file only has 51 bytes as a
return has been placed after
the 'TO' which causes the
cursor to return to the start of
the next line.
As already mentioned this
will differ between different
boards and viewing the file is
the only way to know which
method is being used.
Figure 3A
Type Ctrl X to Abort
Download — snoopy
data — tttl
t current position 0: ' current
position 29
Press Fl at current pos 0 and
F2 at current pos 29 the file
will now look like-
tftl — snoopy data tttl
Note
By placing an end of file
market () at the point shown
and then saving the file our
new file will only contain
Snoopy.
This procedure can be
carried out as many times as
required.
205,56,165,97,229,89,240,62,
144,60,1938
4140 DATA160.20, 177,87, 160,2
0,145,89,230,87,208,2,230,98
,230,69,2022
4150 DATA209.2, 230, 90, 165,90
,201,159,209,230,165,89,201,
3,208,224,2473
4160 DATA173, 20, 206, 133,251,
173,21,206,133,252,169,0,141
,30,206,169,2283
4170 DATA97, 160,206,32,30, 17
1,32,191,203,32,140,203,76,2
08,203,201,2185
41B0 DATA20, 209, 50,32, 140,20
3,165,251,133,253,165,252,13
3,254,160,21,2440
4190 DATA177, 253, 160,20,145,
253,230,253,208,2,230,254,16
5,254,201,159,2964
4200 DATA208.236, 165,253,201
,3,209,230,32,191,203,32,140
,203,169,0,2474
4210 DATA133, 198,76,208,203,
201,3,208,15,169,0,160,20,14
5,251,32,2022
4220 DATA140,203,32, 191,203,
76,208,203,201,17,208,18,32,
113,203,173,2221
4230 DATA24, 206,201, 48,240,2
,198,252,32,191,203,76,208,2
03,201,145,2430
4240 DATA208,35,32,113,203,2
38,24,206,173,24,206,205,16,
206,240,5,2134
4250 DATA176, 13, 76,221,205,1
73,25,206,205,17,206,176,2,2
30,252,32,2215
4260 DATA191, 203,76, 208, 203,
72,165,252,201,159,208,6,165
,251,201,3,2564
4270 DATA240,25,104,170,189,
244,199,201,255,240,16,160,2
0,145,251,230,2699
4290 DATA251,209,2,230,252,3
2,191,203,32,140,203,76,209,
203,0,0,2231
4290 DATA0,0,0,0, 0,0, 0,0,0,0
,0,0,0,0,0,32,32
4300 DATA79,79,32,70,73,76,6
9,32,19,17,17,17,
,695
4310 DATA29, 29,29
2,32,32,32,32,32,
,494
4320 0ATA157,157,
,157,157,157,157,
7,17,17,17,1691
4330 DATA17,17,17
,109,101,116,101,
111,109,32,1210
4340 DATA34,19,17
7,17,17,32,32,32,
,396
4350 DATA32,32,32
2,32,32,32,32,32,
,471
4360 DATA17, 29,29
2,32,32,32,32,32,
458
4370 DATA5,19,17,
,117,114,114,101,
112,111,1133
4380 DATA115.105,
,110,46,46,46,34,
29,29,29,29
,29,29,29,3
32,32,32,32
157,157,157
157,34,19,1
,32,100,101
32,102,114,
,17,17,17,1
32,32,32,32
,32,32,32,3
34,19,17,17
,29,32,32,3
32,32,34,0,
17,17,32,99
110,116,32,
116,105,111
5,19,17,32,
102,105,1114
4390 DATA108, 101,32, 101, 110,
100,32,97,100,100,114,101,11
5,115,46,46,1418
4400 DATA46, 34, 5,19,17,17,17
,17,17,32,110,117,109,32,105
,110,804
4410 DATA115,101, 114,116,115
,32,108,101,102,116,46,46,46
,34,234,234,1660
4420 DATA234 , 234 , 234 , 234 , 234
,234,234,255,186,27,160,0,10
8,111,28,1,2514
5000 rem titttimmomst
ninnim
5010 REM I READY TO SAVE C
ODE t
5020 m utttmniiimiu
iiumtut
5030 REM CHAN6E ,8 TO ,1 IN
LINE BELON IF USIN6 CASSETTE
*
5040 P0KE43,0:P0KE44, 192:P0K
E45 , 235: P0KE46 , 206 : SAVE "EDIT
ORC0O0-CEEB-,8 m
TURBO NIBBLER 4.0 H *NEW 1
Turbo Nibbler 4.0
Turbo Nibble* 4.0
Turbo Nibbtof 4.0
Turbo Nibblor 4.0
Turbo Nibbler 4.0
Turbo Nibbler 4.0
Turbo Nibbler 4.0
Turbo Nibbler 4.0
Turbo Nibblor 4 0
Turbo Nibbl«r 4.0
Turbo Nibbter4.0
Turbo Nibbler 4 0
Turbo Nibbler 4 0
Turbo Nibbler 4.0
Turbo Nibbler 4.0
A big surprise! Now you can copy c
speeds on a single track.
The most well known program tn Europe.
Copies a wnote dtsk m approximately lour
minutes.
By far, one ol the best copy programs,
without using any hardware. With a
comoiete new copy concept, coptes errors
20.2 1 .22,23.24.27. 29 also Mlertracks. error
blocks, wrong IDand daps behind the data
Mocks.
Completely sync orientated.
Can be used with one or two d-sk drives.
Copies also non 1 54 1 formats
Copies up lo 4 1 tracks.
Copies stogie tracks.
Has an integrated disk scan, for half tracks,
speed and sync check. This is why Turbo
Nibtler 4.0can be used by anyone 1
is operable by following a simple menu,
is indispensable for making your security copy
Has an update service at a cost of five
pounds, with the return of your disk
Reviewed in the German magazines RUN
October 1985 and 64'er.
Turbo Nibbler can be used with a
Commodore 64 and a 1 54 1 disk drive.
C15
FILE MASTER *NEW*
' Fie Master s a rww osvBioped We copy program
Toedttg ties seven tunes faster
'Savog Mes etghi hmas las'*
■w-rhout me um of any Hardware
'Can oe usee w.in one or rwo IMI »** Dnves
"Easy to use menu operation
'Dtsk commana easy file OVwce opt-on
•For Commodore 64 Vttn 1 541 r> ... Onve only f 13 00
Completesei T^ot •«* and <<rU*siw ortfy C23 00
Aji cdpf s payabk* Ov cheque -nternational postal order or international Money Oder ana
snoutd be sent to
EUROSYSTEMS
For Data Security
Verlengde Parkweg 6,
671 7GN Ed©, Holland
Telephone 0031-8380-32146
Please add E2 for handling and postage. We send to
ATTENTION
AMERICANA
SOFTWARE
OWNERS DID
YOU
II you did then you're the
lucky winner of a free
Americana product ol your
choice. II you didn't or your
Americana flame wasn't one ol the many that included ihis
outstanding oiler then flo out now and buy one - there's a lot ol them about
For those lucky winners simply indicate the Americana flame ol your choice
in the space below and send it lo Americana Soltwarc and we'll
forward your free flame by return.
Hail ID Tubal)
ladaxrul ( rnirt.
Hmriff Mrtti
Bti-ii-iliini B' 111
LICENSED
AMERICANA
SOFTWARE
0 THRILL
Joe Bradley delves
into the Plus/4's
memory and looks at
programs.
MANY NEWCOMERS TO
computing may have bought a
Plus/4 and have been dis-
appointed that very fewarticles
have been written for this
machine. This article is for
those new enthusiasts who
wish to look into the machine
and start writing machine code
routines.
There is some difficulty in
obtaining a full memory map
for the Plus/4 but this article is
intended to help in making a
start.
First let us have a look at the
different sections of the
memory - owners of a Plus/4
are fortunate here because the
computer contains an inbuilt
monitor which will help.
If you wish to write machine
code routines you must
become familiar with the way
the monitor works and the
different commands that are
available.
The computer contains two
different types of memory
location, those that you can
change, called Random Access
Memory or RAM, and memory
locations that are Read Only
Memory or ROM, these are
used by the operating system
and cannot be altered.
Switch on your Plus/4 and
type:
MONITOR (RETURN)
the computer will respond with
MONITOR
PC SR AC XR YR SP
; FFFF 00 FF FF FF F9
or something similar.
The abbreviations are:
Now type:
M0000 003F [RETURN]
If a question mark is printed
you have made an error in
entry, probably you have typed
letter O instead of a 0 (Zero
number).
If the entry was correct you
will see displayed eight rows of
numbers these are the
numbers stored in the memory
locations 0000 to 003F. Note
addresses are usually given in
Hexadecimal code which
counts in. units, 16s, 256s and
4096s. Thus 003F is 3 X 16 and
another is 15 i.e. 63 in normal
dec i rii.il numbers.
Each location can hold a
number from zero to 255 this is
called a byte and is made up of
eight binary 'bits' which can be
PC Program
Counter
SR Status Register
AC Accumulator
the work horse of
machine code rout
routines
XR X Register
YR Y Register
SP Stack Pointer
This is the current address being
processed by the computer.
This contains six flags which give
information about the current
status of the processor.
This gives the next free location on
the stack which is a temporary
storage area used during processing.
cither zero or one. More
details of this may be read in
any book of machine code.
The block on the extreme
right in reverse print is the
ASCII dump of the code if it is
possible to be printed. When a
character cannot be printed it
is displayed as a full stop (.)•
The highest address that can
be read by the processor is
SFFFF. The dollar sign shows
that this is a hexadecimal
number and is equal to (15 X
40%) + (15X 256) + (15Xl6) + 15.
In decimal this works out as 64
X 1024 which is almost 64.000
and is the reason most early
computers were limited to
64K (approximately).
All the locations from 0000
to 003F which are on the screen
are RAM locations that you can
change but only with care! The
first 4K (actually 4 X 1024) bytes
of memory are used by the
operating system and problems
can arise if you can change the
value. Let's examine this in
more detail.
Locations 002B and 002C (43
and 44 decimal) are pointers to
the start of Basic. To find their
values, read down the left hand
side numbers to 0028 and then
move right counting 8, 9, A, B.
C. The $2B and $2C locations
should contain the values of 01
10. If you have not written any
machine code then this is your
first surprise in that addresses
are always stored in the
computer in what appears to
be the wrong order, what is
called the Lo (Low) byte first
and then the Hi (High) byte.
The pointers tell us that the
current start to a Basic program
is $1001.
Now let us try to alter these
values. Move the cursor over
the 01 at location $3B and
change it to 06. Press
(RETURN], The value will now
be changed and when we
return to Basic the computer
will take $1006 to be the start of
Basic.
Return lo Basic by typing a
letter X and then [RETURN].
ADDRESS
HEX
S0OOO-S0001 0-1
$002-$0006 2-7
$0008 8
$0014-80015 20-21
$002B-$002C 43-44
$002d-$002E
S002F-S0030
$0031 -$0032
$0033-$0034
$0035-$0036
S0037-S0038
System Memory Locations
SYSTEM USE
DECIMAL
Input output chip
Temp. Used in search and renumber
routines
Flag used in quote scan
Temp-integer evaluation
Start of Basic
Start of Basic Variables
Start of Basic Arrays
End of Basic Arrays
Bottom of strings
String pointer
Top of available memory
45-46
47-48
49-50
51-52
53-54
55-56
$0039-$O03A 57-58
$003B-$003C 59-60
$003D-$0042 61-66
$0083 131
S0084 132
$0085 133
$0086 134
$0087 135
$0088 136
$00AB 171
$00AC 172
SOOAD 173
$00AE 174
S00AF-$00B0 175-176
$00C8-$00C9 200-201
$00CA 202
$0100-S010F 256-271
$0124-$01FF
$0333-$03F2
$0509-$0512
$0513-$051C
$051D-S0526
$0527-$0530
407F8
$1000
S4000
291-511
819-1010
1289-1298
1299-1308
1309-1318
1319-1328
2040
40%
16384
Current line number
Pointers used in get
character routine
Pointers in ROM routines
Graphic mode
Colour Selected
Multicolour 1
Foreground colour
No of columns - screen
No of rows
File length
Logical file number
Secondary Address
Device number
Pointer lo file name
Pointer current screen line
Cursor column
Area used to store string
after number conversion
STACK
Cassette tape buffer
Logical file numbers
Primary device numbers
Secondary addresses
IRQ Keyboard buffer
Monitor control for RAM/ROM
Start of Basic Text
Start of Basic Text
when HIRES is being used.
AVAILABLE
FOR USE
NO, Leave alone
YES
YES
YES
YES - but reset
YES - but reset
YES
YES
YE5
YES
Only move down
to protect memory
YES
YES
YES
NO
Very useful to
store
short machine
code.
The computer prints READY
and everything looks OK.
However, enter a Basic line,
say:
1 PRINT [RETURN]
Your screen will go haywire
and nothing you do with the
keyboard will bring back
control. We say the computer
has hung. Now we see another
advantage of the Plus/4 over
many other computers, it has a
RESET key. This key is at the side
next to the ON/OFF switch.
Press this small button and the
computer will be reset without
switching off. Later when you
are developing machine code
routines your computer may
sometimes hang but you will be
able to keep your programs
intact if you hold down the
RUN/STOP key while you press
the RESET button. (A very
valuable feature which you will
learn to treasure).
Your computer is now reset
and you now know that some
parts of RAM cannot be altered
without thought! As you
develop your machine code
expertise you will need to
know which locations you can
use without dire consequen-
ces. The abbreviated table of
memory locations from 0000 to
$0FFF shows some that I have
found useful, a safe rule is to
restore the original value after
use.
Consecutive locations in
the region $0000 to S00FF are
particularly valuable - this area
is called Zero-Page because the
Hi byte of these addresses is
zero. Consecutive bytes in zero
page are often used as pointers
in machine code routines e.g.
LDA ($3B).Y tells the computer
to look at $3B for the Lo byte of
an address, look at $3C for the
Hi byte, add the value of the Y
register to the address
obtained and then load the
accumulator with what it ffhds
at the calculated address.
We have seen that Basic
normally starts at $1001 but if
you type
GRAPHIC1 [RETURN|
The screen will show a
haphazard pattern because
you will have moved into the
High Resolution mode. This
mode takes an extra 12K of
RAM memory and the
computer gets this by moving
the start of Basic up to $4001.
Even though you may not be
able to see on your screen
which key you are pressing,
carefully type:
GRAPHICO (RETURN]
and you will return to the
normal screen.
So we see that the operating
system takes either $1000
(approx 4K) at the bottom of
RAM for normal Basic or $4000
(approx 16K) for high resolu-
tion graphics.
What about the top of
RAM? Well, apart from a small
area from $FD00lo$FFFF which
is again used by the system, the
rest of RAM is available for
Basic programs. The amount of
memory from $1000 to $FCFF is
60671 and this is the number
that appears on the screen at
first power up.
However, to work all the
Basic system of the computer, it
needs another 32K of memory
- the ROM. Where does this go
- we already know that the
computer can only read 64K of
memory and it looks as though
this is all taken by RAM. What
happens is that the ROM for
the operating system has
addresses from $8000 to $FFF.
So there are twodifferent bytes
of memory that have the same
address one byte in RAM and
another byte in ROM. When
the computer is working it
needs a switch between RAM
and ROM so that the correct
byte is read.
Different areas of memory
are called memory banks and
we need banking routines to
switch different banks in or
out.
The Plus/4 memory map
may be illustrated by Diagram
but a system call to this part of
memory would result in a ROM
routine being entered at an
unusual point and execution
continued from this point.
(Execution usually means death
of the computer in this case - it
will probably hang!)
The inbuilt monitor
TEDMON allows you to display
memory locations or dis-
assemble either RAM or ROM.
Let us try some examples.
Type and enter this Basic
program:
10 SA=992
20 FORI=0to9
30 READX:POKE(SA+l).X
40 NEXT
50 DATA 162,26,138.157,200.12,
202,208,249.96
This is the type of program that
appears in this and other com-
puter magazines. The numbers
in the data statement are
POKED into memory one by
one starting at location 992 if
the program is RUN.
The simple machine code
program following will be
entered at $03E0 which is in the
Tape Buffer area and thus safe
from corruption.
03E0A21A LDXff$lA
03E28A TXA
03E39DC80CSTA $0CC8,X
03E6CA DEX
03E7D0F9 BNE $03E2
03E9 60 RTS
Let tis look at this in detail.
The first command loads or sets
the X register to $1A which is
the same as 26. the number of
letters in the alphabet. The
command TXA transfers the
Memory Area
$FD00 - $FFFF
$8000 - $FCFF
$4000 - $7FFF
$1000 - $3FFF
$0000 - $0FFF
Diagram 1
RAM
ROM
Banking Routines Operating Routines
Available for Basic Operating Routines
BASIC AREA
Either BASIC
or HIGH RES.
GRAPHICS
RAM used by system
When first switched on the
computer has access to RAM
memory bank $0000 to $7FFF
and ROM$8000to$FFFF. How-
ever the PEEK and POKE
commands will always access
RAM. A machine code
program could be POKED to
the too of RAM (below $FD00)
value of X. which is 26. to the
accumulator so both X and A
are now 26. The location $0CC8
is the initial or zero column of
the sixth row in the screen
memory. The instruction STA
$0CC8.X stores A in location
$0CC8 plus the value of X
which will be column 27 of row
six (27 because the initial
position corresponds to X = 0).
The STA instruction is like a
POKE so a letter Z will appear
on the screen. The next line
decrements X by one which
now becomes 25. This is not
zero so the BNE (Branch Not
Equal) sends the processor
back to the TXA. This will result
in a Y being printed and so on
until X is zero when the
program will go to the RTS
(Return from Sub-routine) and
return to Basic. So all the letters
of the alphabet will be printed
in reverse order. SYS 992
|RETURn| will run the routine.
OK, so far so good. Now
let's try the Monitor. Type
MONITOR and [RETURN].
Actually M and (shifted O) is an
abbreviation that could be
used.
Then type:
D 03E0 03E9
when the above machine code
should be displayed.
Let us try to move this to an
address where we have both
ROM and RAM - above $8000.
Type X and [RETURN] to
return to Basic. List the
program already entered and
change line 10 to read
SA=32768. It is a good idea to
save this program now. The
number 32768 is the decimal
equivalent of $8000, now RUN
the " program. The machine
code will now be in RAM from
$8000 and it might seem that
SYS 32768 would run the
program. Well try it! What
happens is that the SYS call
goes to the memory bank that
is switched in, which is ROM
above $8000 and happens to
have a routine to give a warm
start. If you saved your program
then reload or type it out again.
RUN to make sure the machine
code is in RAM.
To check, go back into the
monitor by typing M (Shifted
O) and [RETURN] then D 8000
(RETURN].
What you now see is ROM
and not our little program.
However the Monitor is
controlled by location $07F8.
Type M 07F8 07F9 to display
memory locations and type
over the first 00 with 80 then
(RETURN]. The monitor will
now display RAM above $8000.
Type D 8000 again and there
should be our little machine
code program. You should
note that although the monitor
is displaying RAM. if you used
the G command, i.e. G 8000.
Plus/a
then ROM would again be
executed. (Don't do it!)
How can a machine code
above $8000 be executed? The
secret lies in two memory
locations.
$FF3E — ROM select
$FF3F — RAM select
Any write (i.e. POKE) to
$FF3E will select ROM and any
write to $FF3F will select RAM.
However care is needed. If you
do POKE to $FF3F the machine
will hang! This is because atthe
first interrupt the interrupt
vector will point to RAM and
not the usual interrupt routines
in ROM. Thus the interrupt
must be disabled before a
switch to RAM and then
cleared after the call to RAM is
finished.
Type the following extra lines:
60 SA=992
70 FORI=0 to 11
80 READX:POKE(SA*l),X
90 NEXT
100 DATA 120,141,63,255,32,
0.128.141,62,255,88,96
Now. if you RUN the
program in addition to
entering the old routine at
$8000 in RAM you will also have
entered the following routine
at $03E0:
03E078
03E1 8D3FFF
03E4 200080
03E78D3EFF
03EA58
03EB60
SEI
STA $FF3F
JSR $8000
STA $FF3F
CLI
RTS
You could check by going
into monitor and disassembl-
ing from $03E0 and also $8000.
The command SYS 992
(RETURN] will run routine.
Let's examine this in detail.
When you enter the command
SYS 992 the program will go to
$03EO and set the interrupt i.e.
the interrupt no longer occurs.
The next op-code at $03E1
looks as though we are irying to
put the value of A into the
location $FF3F but actually this
acts as a switch which changes
from ROM to RAM. The next
op-code makes the processor
jump to the sub routine in
RAM at $8000 and executes it -
printing out the alphabet as
before. The RTS at the end of
the $8000 sub-routine returns
the processor to $03E7 where
the STA $FF3E switches back to
ROM. The interrupt is returned
to normal and the final RTS
returns us to Basic.
37
GRAPHICALLY
SPEAKING
Stuart Cooke takes a close )
look at Vidcom 64, a new
| low priced art package.
NO MATTER WHAT SORT OF PROG-
ram you are writing for your C64,
presentation is importanl. If you are
writing a business package then the
screen should be made to look as inter-
esting as possible. On the other hand if
you are writing a game you will need to
provide an interesting backdrop for
your game. There's no point in writing
the best ever platform game if it isn't
pleasing to the eye.
Designing screens on the C64 is not
that easy since there are no inbuilt
graphics commands available.
Therefore, many programmers will use a
graphics package that will help them
draw 'pictures' in as short a time as
possible and with ease. Numerous
packages and peripherals are available.
For example you could use a light pen or
a touch tablet or even your joystick.
Vidcom 64 is another package to add
to that already overflowing number of
programs available, it does however
have one feature that will make it stand
way above the others, its price is only
£4.95.
Vidcom's 64 will work on either the
C64's multi colour or standard bit map
screens. Standard bit map mode allows
you to use two different colours in any
character square on the screen while
multi-colour mode allows you to have
four colours in any square with a loss in
horizontal resolution, i.e. the coloured
'dots' are twice as big.
The best controller to use with
Vidcom 64 is a trackball, however for
those who can't afford one of these fairly
expensive devices, a normal joystick will
work just as well.
Layout
On entering the program the screen is
split into two halves. The upper half is
the top half of the screen on which you
will draw, the other half is the control
1 nl 1 i* lii 1 1 f* i .v >1
*-*~ — — ' 1
Js
* -
panel which displays most of the
functions available. I say most as there
are actually three menus which appear
al this position, each one being selected
by the function keys. Moving your con-
troller will move a small arrow around
the screen allowing you to choose which
command you want to use. Each press of
the firebutton is acknowledged by a
tone and the command that you have
selected starts to flash.
Entering the drawing area is simple,
you just have to press the control key. As
I have previously said you can only see
half of the drawing screen at once.
However, if you move your pointer
down the screen the command menu
will flip up to the top of the screen
allowing you to alter the contents of the
bottom half of the screen. Sometimes
this is quite difficult to use as you can't
see what is on the other half of the
screen to which you are writing on.
Thankfully the author of the program
has included a way of turning off the
command menu allowing access to the
full screen.
The three command menus available
are the drawing menu which allows you
to select all of the drawing commands,
the definition menu which allows you to
manipulate sprites, characters and
patterns and the I/O menu which allows
you to save all of your work to disk or
tape.
Commands
All of the expected drawing commands
are available. We have the freehand
draw, band draw, box, circle etc. There
are even some extra ones such as the
ability to duplicate areas of the screen,
rotate the contents of a box on the
screen and reverse the contents of a box.
A few fill commands are also avail-
able from the drawing menu. Vidcom 64
has two graphic screens available for
use. The-merge fill routines available in
this menu allow you to merge areas of
one of the graphics screens with the
other.
A 'normal' fill routine is available
from the definition.
The PAT FILL command allows you to
fill areas of the screen with a pattern of
your choice. This can be one of the
patterns included in the program which
consist of everything from a solid to a
brick wall, or you can use the grab
definition command which allows you
to generate a new pattern by grabbing
an area of the screen.
As you are no doubt aware, the
screens in most games programs are not
saved as a picture. Rather, the screens
are built up from a number of re-
defined characters. The reason for this is
that using characters will take up a lot
less memory and you can use characters
from one screen on another, saving
even more space. With Vidcom 64 it is
possible to grab character definitions
from the screen. This means that you can
use this package to design your screen
and then save it as a number of
characters. You can use these characters
to design your other screens.
Not only can you grab characters but
it is also possible to grab sprite
definitions. Now it is a simple matter to
change an area of the screen into sprites
for use in another program.
Input/Output
The I/O menu offers a wide range of
functions. It is possible to LOAD, SAVE,
VERIFY and REPLACE data. Data can be
the actual graphics screen, or the
pattern, character or sprite definitions. It
is also possible to select whether you are
using cassette or disk from this menu.
Gripes
Obviously no program is perfect and I
did think of a few improvements that
could have been made to this package to
really make it stand out from the rest.
There is no function that allows you
to get a printer dump of the screen that
you are designing. A screen dump is
often quite useful for reference without
having to load the screen back into the
computer. There are many similar
packages that do offer this facility.
I previously mentioned that the
program makes a beeping noise
whenever you select a command from
one of the menus. However some of the
drawing commands need more than
one press of the fire button to operate.
No indication is given when the
program has acknowledged the first
press. From experience this quite often
means that you end up with circles and
boxes that you can't see. A simple beep
after each press of the fire button would
have made things a lot clearer.
For £4.95 it is very difficult to fault
Vidcom 64. It is an extremely easy to use
and powerful program offering many
facilities that are only available on more
expensive programs.
If you don't own a graphics program
then I would suggest that you go out and
buy this. Even if you can't draw its great
fun just messing around.
It you already own a graphics
package then this is still worth looking at
as it has some very powerful features.
Touchline
Name: Vidcom 64
Supplier: Activision
Address: 23, Pond St, Hampstead NW3
2PN
Steve Lucas brings you
an adventure program
[for the Pl us/4
-
THERE HAVE BEEN MANY
rumours about my great uncle
Victor Frankenstein having
created a monster, but I have
always dismissed them as
superstitious nonsense. Imag-
ine my surprise when I
received a letter in ihe post
(rom a solicitor informing me
that Uncle Victor had died and
asking me to come down to his
mansion. With no clear idea of
the reason for my journey, I
travelled overnight to the
lonely village where Uncle
Victor's mansion stands and at
this moment I am standing on
the steps with just a note and a
key to the house.
I have to discover the
reason for my journey and
solve this mystery. You should
give me instructions as to what
to do by typing in instructions
in the form of one or two word
sentences.
Here is a list of some of the
words I understand: go. in, out,
up, down, n,s, e, w, help, look,
search, open, unlock, kill,
attack, sew, fit. insert, cut, dig,
score, rub, ride, screw,
unscrew, get, take, drop, leave,
put. pull, connect, drink, eat,
wail, swim, wash
Notes
1. Line 10 forces the computer
to use the upper/lower case
mode and therefore all instruc-
tions must be given to the com-
puter in lower case only.
18 PRINT CHR$(Mt:CHR$(9)
29 PRINT" [CLEAR] [ RED] "
30 CHAR 1,9,3,'ls T1HE [s M]
ONSTER Is RETURNS'
40 CHAR 1,9,4/=============
50 PRINT :PRINT:PRINT'tBLUEH
s HIT NAHE IS Is H3ERBERT [s
F1RANKENSTEIN AND Is I] 1
60 PRINT-HAVE JUST RECIEVED
A NOTE IN THE POST-
70 PRINT'FROH MY UNCLE , Is V
3ICT0R U FRANKENSTEIN MHO
a
80 PRINT-DIED UNDER NYSTERIO
Variables Used
S%(X,Y) holds the map
e,f tests action
k check for word recognition
P% current location
B%(x,y) pointer to location of objects
Q$(x) descriptions of locations
C$(x) descriptions of objects
aa-az flags for actions
N$(x) words understood
N%(x) pointer to words
X$ input sentence
C$.R$,D$,LS substrings of input sentence
Program Breakdown
10 selects lower case/upper case mode
20-130 instructions
140-190 fills arrays and set variables
200-750 data for game
760-780 initialise
790-1580 main control loop..do loop until win game
800-860 test for traps etc
870 . describe location
880-1040 directions
1050-1090 describe objects
1100 input sentence
1120-1570 call appropriate subroutine (if necessary!)
1590 win game
1600-3570 subroutines
2. The listing takes up just over
14K of memory, but needs
more than 17K for variable
storage. It will not, therefore
run in the C-16. If, however, all
the spaces between keywords
are removed and the descrip-
tions of locations and objects
are shortened, you should be
able to run the game in the C-
16.
3. C64 owners should be able to
run this game if they: Split any
lines containing IF THEN ELSE
statements into separate lines
with different conditions;
replace the main control DO
LOOP UNTIL loop with a con-
ditional jump ie. remove line
790 and replace line 1580 with:
1580 IF <P%=24 AND AT=2)
THEN 1590
1581 GOTO 800
Replace scnclr with a PRINT
"clear screen" command;
GETKEY A$ just waits for a key
to be pressed and can be re-
placed with:
770 GET A$: IF A$=" " THEN 770
US CIRCUMSTANCES LAS7HEEK . "
90 PRINTTs T3HE NOTE READS
■
100 PRINT:PRINT'[GREEN][s Yl
OU MUST DESTROY THE MONSTER
BEFORE IT IS TOO LATE !!!»■
110 PRINT:PRINT'tBLUE3[s II
AM AT THIS MOMENT STANDI NB 0
N THE"
120 PRINTTs T1HE STEPS OF U
NCLE [5 VIICTOR'S MANSION."
130 PRINT :PRINT:PRINT" [RED3 E
5 PJLEASE HELP HE IN MY TASK
■
!40 DIM QI!60),BIf40,H.V*'i
0»,6$(5«),NZUesN$>;50),Ut5
0),SIl60,4i
150 FOR 1=1 TO 2b:REAB GS <X>
,BJU,ll,N$(XJ:Nim=*:NEn
160 FOR 1=1 TO 46:READ 0$U>
:F0R f=l TO 4:READ Sr*,Ti:N
EXT Y,l
170 PZ=13:N$(25)='CRQNBAR':6
*i20)=":6*<21>="
190 K(25,n«29:W125i*'fl :T
RONS CR0NtiAR , :b$i2)="A NEEDL
E AND THREAD"
1^0 N$\3J='NEED.E"
200 DATA A T ATTf <iOTE,l3,NO T
E.AN OLD BRASS KEM3.KE',A
SEEL OF COT'ON
210 DATA 4,CGTT0N.ft :EMGfc,4,
LEMON, A PLASTIC DUS T BIN,1 ,DU
STBIN
220 DATA A CANDLE, 3, CANDLE, A
SOLD PEN IN A HOLDER, 6, PEN
238 DATA A MONS'ER STRAP*0
TO A TABLE,* 1 '. MONSTER. A SCAL
PEL, 20, SCALPEL
240 DATA A LARGE 6LASS BOTTl
E ,21 , BOTTLE. A SMALL lEVER,22
.LEVER
250 DATA fi PADLOCK. 22, PADLOC
K.A PAINTING ON THE KALL,8,P
AINTING
260 DATA A PAIR OF SLIPPERS,
5, SLIPPERS,", B.HAP
270 DATA AN OLD LEATHER DIAR
Y t 12,DIARY.A STALE SANDWICH,
3 , SANDWICH ,A SPADE ,23
2B0 DATA SPADE, A CDFFIN,4i,C
Plus/4
OFFIN,A CORPSE, 41, CORPSE, A H
EART, 41, HEART
290 DATA A SCREWDRIVER, 39, SC
RENDRIVER,A PAIR OF ELECTROS
ES,46,ELECTR0DES
308 DATA A CRUCIFIX ,30,CRUCI
FII, - ' f 8,HflP," - f l f BATCH
3I« DATA-IN THE BACKYARD. ts
A] PILE OF BOXES STANDS IN
ONE CORNER. ',0,0, 0,0
320 DATA' IN A COMFORTABLE LO
UKGE.\0, 0,3,0
330 DATAMN THE DINING ROOM.
Is A] HIGHLY POLISHED TAB
LE STANDS IN THE CENTRE."
340 DATA 0,6, 4, 2, "IN THE KIT
CHEN, ts T)HE SINK IS FULL 0
F DIRTt POTS',0, 7,0,3
350 DATA' IN A BEDROOM. Cs T3
HERE IS A LARGE FOUR PD5
TER BED HERE.' ,0,8,0,0
360 DATA' IN A LARGE OAK PANE
LLED LIBRART.', 3,0,7,0
370 DATA'IN THE HALL, [s A]
HIDE STAIRCASE LEADS UP FRO
H HERE. '.4, 13.0.0
380 DATA'ON THE LANDING. [5
A} STAIRCASE LEADS DOWN. ',5.
12,9,1
290 DATA'IN A SHALL BEDROOM.
',0,0.10,8
400 DATA'IN A CLOSET FULL OF
OLD CLOTHES. [5 A3 RAT LIE
S IN ONE CORNER. ',0,0,0.9
410 DATA'IN THE !GILET.",0,0
420 DATA'IN THE BATHROOM, is
A3 TAP DRIP5 INTG THE RUS
V BATH.', 8,0,11,0
431 nATC'ON the nnnwrp
*N OLD MANSION. ",0,14,0,0
440 DATA'ON A DIRT TRACK LEA
DING THROUGH AN QVERGRO
KN GARDEN.', 13,23,0, 0
«5i DATA'IN A SECRET PASSAGE
.' ,0,1b, 6,0. 'AT THE TOP OF A
FLIGHT OF STAIRS.'
460 DATA 15, 0,0,0, 'AT THE BO
TTQH OF A FLIGHT OF STEPS. E
s A] PASSAGE LEADS EAST.'
470 DATA 0.0, 18,0, 'AT THE NO
RTHERN END OF A SECRET
LABORATORY. ',0,19,0
480 DATA 17, 'IN A SECRET LAB
ORATOR f . [5 T1HERE IS AN
OPE RAT I N6 TABLE HERE.'
490 DATA 18, 20, 0,0, "IN A PRE
P ROOM. Is T 3 HERE IS A GLASS
CABINETQN THE MALL. '.19,22
500 DATA 21,0, 'IN A CHEMICAL
STORE ROOfl.", 0,0, 0,20
510 DATA'IN A SHALL ROOM. Is
T]HERE IS A LARGE CON
7R0L PANEL HERE. ',20. 0,0,0
520 DATA'ON A DIRT TRACK. [5
T3HERE IS A SIGNPOST HER
E. ',14,33,24,0
530 DATA'ON A SECRET rOOTPA T
H LEADING THROUGH A PEAT BO
6.',0,0,25,23
540 DATA-STANDING OUTSIDE A
HUT WHICH IS SURROUN
DED Bf T REES.'. 0,0,0,24
550 DATA'AT ONE END OF THE H
UT. ',0,27,0,0
560 DATA" IN5IDE A SHALL HUT.
fs A! TABLE STANDS *GA
INST THE WALL. ',26,0,29, 26
570 DATA'IN THE HUT. [s TIME
RE'S A BAG HERE. '.0,0, 27,0
588 DATA'IN THE HUT. ',0,0,0,
27
590 DATA'B' AN ENORMOUS ALTA
R. Is A3NCIENT SEPULCRE5 LIN
E THE HALLS . ',0,31 .0,0
600 DATA" INSIDE A LARGE CRIP
T.", 30, 32, 0.0
610 DATA'OUTSIDE A CRYPT. [5
MIST SWIRLS AROUND THE ENT
RANCE.'. 0.8, 33.44
620 DATA'ON A DIRT TRACK. ',2
3.34,0,32
630 DATA'BT A URGE METAL GA
^.',33,35,0.0
*40 DATA'ON A DIRT TRACK . Es
TJHE HA! SOUTH LEADS INT
0 A GlQQHT FOREST. ",34, 36
650 DATA 0,0. 'IN A GLOOM T FO
REST. ',35, 37, 40, 38
660 DATA-IN A SMALL '.EARING
, IS TjHE FOREST IS TOO THI
CK TO TRAVEL FURTHER. ".36
o70 DATA 0.0,0, 'LOST j N 6 SL
ODMI FOREST." ,38,38,38,38
680 DATA' INS IDE THE FORESTER
'£ MEAGRE COTTAGE. ",0,0,0.0
690 DATA*OU T SIDE A NQODCUTTE
R'S CC'TAGE." ,0,0.0.36
700 DATA'AT THE BOTTOM 0^ A
FRESHL* DUG GRAVE. ',0,0. 0.0
710 DATA'BT A FRESHLt DUG GR
AVE. ",0,0, 43, 34
720 DATA-Bt SOME TOMBSTONES.
\M,M2
730 DATA'ON A GRAVEL PATH.',
0,45,32.0
740 DATA-BT A GRANITE MONOLI
TH. Is A] LARGE RED LEVERPRO
TRUDES FROM THE BASE.'
750 DATA 44, 0.0,0, 'INSIDE A
SECRET CHAMBER." ,45,0,0.0
760 PRINT"! DOWN I I DOWN } [RV
SON3IBLUE3 Is P3RESS ANT KE
I TO START THE GAME . 1
770 GETKtT AJ
780 SCNCLR:SU7,4)=6
790 DO
800 IF AT=1 AND PZ=19 THEN A
T=2:PRlNTTs TJHE MONSTER SE
ES ME. Is [I'D BETTER MOVE I
T !'"
810 IF AT=2 AND Ai=I THEN «
=-[s TJHE MONSTER CATCHES HE
'":60SUB 2000
820 IF AT=2 THEN PRINT'ts T]
HE MONSTER IS JUST ONE STEP
BEHIND ME"
830 IF PZ*15 AND AE<>2 THEN
H='ts I] TRIPPED AND FELL !
N THE DARK":60SUB 2000
840 IF PM9 AND AR=2 THEN P
RINT" [ s T]HE MONSTER HAS A P
AIR OF ELECTRODES ATTACHE
D!'
850 IF PI=34 AND A^2 THEN P
RINT'ts A] VICIOUS WOLF GROW
LS AT HE"
860 IF PI=2* AND AJ<3 THEN I
l="Is I) SINK INTO THE BOG"
:60SUB 2000
870 PR I NT " t DOWN J C DOWN ] [ BLUE ]
[s I] AM :-'
880 PRINT'[DOWN][RED]';Q*(PI
>:K=0:A$=":Ai=Pl
890 IF SI!PI,1>>0 THEN A$='i
s N3DRTH'
900 IF 5I(PI,2i >0 AND LENIAS
(>0 THEN A$=A$*',[s SJOUTH'
910 IF SIiPI,2))0 AND LEN (At
>=0 THEN Al='[s SlOUTrt"
920 IF SI(PI,3);0 AND LENIA*
>>0 THEN A$=A$*Vs E3AST"
930 IF SI(PI,3)/0 AND LEN(AI
)=0 THEN A$='[s E)AST'
940 IF S7(PI.4)>0 AND LEN'AS
)>0 THEN A$=At+'.Is W3EST"
950 IF SZ<PI.4)>0 AND LEN (A*
!=0 THEN A$='ts W3EST'
960 IF PI=! THEN A$='[s I IN'
970 IF PZ=4 OR PI=31 OR Pl=2
6 THEN W«A$*VS 01UT'
988 IF (PZ=25 OR Pl=4i OR PI
=32) THEN A$=A$+V& IVF
998 IF PI=39 THEN A$='U Q3U
Ti
1806 IF n»M OR PI=B THEN A
1018 IF PX»7 OR PM7 OR PZ«
41 THEN At=A$+" ts UJP"
1828 IF PI=42 AND Mt>l THEN
A$=A$*', Is DIOMN"
1838 PR I NT • C DOMN 3 J DDMN ] [ BLUE
]Es U CAN 80 :-'
1848 PRWT'lREDJ'sW
1858 E=8:F0R 1=1 TO 26:PP!t=e
:IF BI(I,1)=P2 THEN PPM
1868 IF PPM THEN 1888
1870 NEITsGOTQ 1108
I860 IF E=8 THEN PRINT'tBLUE
ItBONNlts I] CAN SEE :-[RED3
1898 PRINTG$U):E=l:GOTO 10?
I?
1100 PRINT'tDONNlIBLUElts K3
HAT SHALL Is II DO NON IPURP
LEI "::INPUT Z*
1118 B$=LEFTSU$,2J:C$=LEFT$
lZ$,3):DJ=LEFT$tZ$,4)
1128 SCNCLR:SOUND 1,888,1
1138 IF CJ='PRA' THEN PRINT"
[BLACKlts PIRATING HAKES HE
FEEL BETTER BUT NOTHING HAPP
ENS.':K=1
1148 IF C$='HEL' THEN PRINT'
[BLAOCHs 13*11 SORRY Is 13 H
AVEN'T A CLt)E":K=l
1158 IF RIGHT$(Z$,3)='QFF' T
HEN K=l:PRINT'ts H3IND TOUR
LANGUA6E!'
1160 IF C$='SCO' THEN K=1:PR
IMT'ts T3HIS IS NO BftflE TOU
KNOW! "
1170 IF C$='RUB' THEN K=l :PR
INT'ts DION'T BE ABSURD"
1181 IF C^'RID 1 THEN K=1:PR
INT'ts Ml HAT IN ? B
1198 IF dx'MV 1 THEN K=l sfiO
SUB 2878
1288 IF CS='REA' THEN K=l :SO
SUB 2100
1218 IF C$='OPE- THEN K=l:GO
SUB 2260
1220 IF C$='UNS' OR CS='SCR'
THEN K=1:60SUB 2318
1230 IF C$="UNL" THEN K=!:6Q
SUB 2368
1248 IF C*="DRO' OR C*«"lEA'
OR C$= B PUT- THEN K=!:GDSUB
2480
1250 IF C*=*W OR Dl='60 I'
THEN K=l:GOSUB 2668
1260 IF CJ='OUT" OR 0S='GO 0
• THEN K=l sGDSUB 2730
1270 IF C$='UP' OR B$="U" OR
B$='60 U' THEN K=l:GOSUB 27
90
1280 IF C*='PHO' THEN K=l :PR
INT'ts N3HAT NITH ?"
1298 IF LISBON* OR B$='C : 0
R DS='6D D' THEN K=1:60SUB 2
830
1300 IF C$='SEA" THEN K=l:BO
SUB 2880
1311 IF C$='LI6' THEN K=l:GO
SUB 2928
1320 IF CM"SQU" THEN K=l :GD
SUB 2978
1330 IF CJ='DIA" THEN K=l:GO
SUB 3048
1340 IF C$='DIG' THEN K=l:GO
SUB 3158
1350 IF C$='SHA" OR C$='BRE'
THEN K=1:60SUB 3188
1360 IF C*=-PUL' THEN K=l:GO
SUB 3228
1370 IF Ct="ATT' OR C$='KIL"
THEN K=1:G0SUB 3318
1388 IF C$='LOO' THEN K=l:PR
INT'Is II CAN'T SEE ANYTHING
SPECIAL"
1398 IF C$="CUT' OR CJ='STA'
THEN K.=1:60SUB 3348
1488 IF C$='FIT" OR C$='INS'
THEN K=1:60SUB 3398
1418 IF C$='SEN' THEN K=l:GO
SUB 3468
1428 IF C*='CON" THEN K=l:60
SUB 3588
1438 IF C$='TAL' OR C*='SAY'
THEN K=l:PRINT'ts U DON'T
TALK TO NT SELF !'
1448 IF C$='NAI" THEN^.=l:FO
R X=l TO I000:NEU I
1450 IF P!=24 AND AT=2 THEN
GOSUB 3560
1460 IF C$='EAT' THEN PRINT'
Is IJ'N NOT HUNGRY AT THE NO
!1ENT":K=1
1478 IF C*=-DR1" THEN PRINT"
Is I3'H NOT THIRSTY , ":K=I
1488 IF 1BI='N' OR B*='6Q N'
) AND SUPI,i)>0 THEN KMiPl
=52(Pl 1 i;
:4«0 IF <BJ='S' OR D$='GO S'
I AND SI (PI, 21)8 THEN K»1:M
=SHPI,2>
:588 IF IB$='E' OR D$='60 E'
» AND SI'PI,3)>0 THEN K»1:M
«SX(M,3)
1510 ! c ''B$='N" OR D$='G0 N"
J AND SI(PI,4)>8 THEN K=1:PZ
=SUPI,4i
1528 IF K=8 AND IB*='N' OR B
$='S' OR Bt="E" OR &$='*"» T
HEN K=I:PRINT"ts 13 CAN'T'
1530 IF C$='SNI' THEN K=1:PR
INT'ts DION'T BE ABSURD"
1548 IF C$='NAS" THEN K*l:Pft
INT'Is DIDN'T BE fi SILLY BIL
LY!"
1550 IF C$="GET" OR C$='TAk'
OR CI="GRA' THEN K=1:6QSUB
1680
1568 M=8:!F »2=A: THEN AI=1
;578 !F K=0 THEN PRWEs ;3
'N AFRAID Is H DON'T UNDERS
TAND ¥ OU'
1580 LOOP UNTIL (PI=24 AND A
T=2,
1590 GOSUB 3568
1688 60SUB M5*»
1618 IF LlOl IncN i-RINT'Ls
13 DON T SEE A 'jLI;' HERE':
SETURN
1628 EI=8:F0R X=l TO 26
1638 IF 8Z((,!)=P1 AND BUN*
<R),1)=PI THEN EI=1
1640 NEXT : IF EI=0 THEN PRINT
■Is -I3ATBE ts 13 NEED GLASSE
S, BUT Is 13 DON'T SEE IT':R
ETURN
1650 IF R=l THEN AA=1
1660 IF R=2 THEN AB=1
1670 IF R=3 AND AC=0 THEN AC
=1
1680 IF R=4 THEN AD=1
1698 IF R=6 THEN AE=1
1708 IF R=9 THEN AF=1
1710 IF R=13 AND P2=8 AND AG
=0 THEN AG=l:GOSUB 3I20:RETU
RN
1720 IF R=7 AND AH=I THEN AH
=l:PRINT'Es A3 PANEL SLID AS
IDE':SI(6,4)=15
1738 IF R=26 THEN AI=1
1740 IF R=8 THEN X$='Es IJTS
HANDS CLANP AROUND NT THRDA
T. Es Alls A1GGH":G05UB 2008
1750 IF R=12 THEN PRINT'ts I
IT'S LOCKED AROUND THE LEVER
! ' :RETURN
1760 IF R=ll THEN PRINT'Is D
30N'T BE A FOOL":RETURN
1770 IF R=15 AND AJ=0 THEN A
J=l
1780 IF R=17 AND AK=0 THEN A
K=l
1790 IF R=17 AND AK=2 THEN R
ETURN
1888 IF R=18 THEN AH=1
1810 IF R=22 THEN AN=1
1B20 IF R=19 THEN PRINT'Is I
IT'S TOO HEAV":RETURN
1830 IF R=20 THEN PRINT'Is I
] CAN'T CARRY IT":RETURN
1840 IF R=21 AND AN<3 THEN P
RINT'Is 13 CAN'T DO THAT....
YET":RETURN
1858 IF P=16 THEN AO=l
I860 IF R=25 THEN AP=1
1B70 IF R=23 AND AR=0 THEN A
R=l
1880 IF (R=21 AND AS=0) T HEN
ASM
1890 EI=0:FOR <=1 TO 5
1900 IF V$U)=" THEN V*(D*
B»tW(ft)):El=hI=tlU]
1910 NEXT
1920 IF EI=0 THEN PRINT'Is S
10RRY..JY HANDS ARE FULL"!
RETURN
1938 BIlN2lR»,n=8
1948 RETURN
1950 i$=":FDR 1=1 TO LEN(Z$
1968 IF HIDHZ«,X,1»=' ' THE
N L*=ftlBHT*tZ$ 1 (LEN(2«*-I>) :
1=99
1970 NEH:R=«:LZ=0:IF LEN(L*
)<2 THEN RETURN
1980 FOR 1=1 TO 26:IF LEFT* t
N$U>,LEN(L$))=L$ THEN LI=1:
R=X
1990 NEH:RETURN
2080 PR I NT ' t CLE AR ] I DONN 3 1 DON
N3';X$
2010 PRINT' IDONNJIDONN1 IDONN
1IRED3 Is 13 AN DEAD'
2028 PR I NT" I DONN 1 1 DONN 3 [ DONN
3 EBLUE3ERVSON3 ts NIOULD t
OU LIKE ANOTHER GANE <Y/N> ?
2838 GETKET A$
2840 IF A$='Y' OR A$='Es Y3"
THEN RUN
2050 IF A$='N" OR A$='Is N3'
THEN PRINT'ECLEARlEs GJOODB
YE. Es T1HANK YOU FOR PLAYIN
G'.':END
2068 GOTO 2030
2070 PRINT'EPURPLElEs 13 AH
CARRYING :-":F=8:F0R 1=1 TO
5:IF V$tl)<>" THEN F=1:PRIN
TV$ll>
2080 NEXT : IF F=0 THEN PRINT'
Es N30TH1NG AT ALL!"
Plus/4
299* RETURN
RN
2650 RETURN
THAT ?":RETURN
2109 605UB 1950
2330 IF AN>1 THEN PRINT'ts I
2668 IF PZ=13 AND AB<2 T HEN
2930 IF AK1 THEN PRINT'ts I
2111 IF PI=23 THEN PRINT" [s
IT '5 ALREADY OPEN":RETURN
PRINT'ts TIHE DOOR'S LOCKED 1
1 HAVEN'T GOT A LlGHT":RETU
TIHE SIGNPOST READS :-"
2340 PRINT'ts 11 OPEN THE CO
" : RE TURN
RN
2128 IF PI=23 THEN PRINT - [BL
FFIN":G$(20)='A CORPSE"
2670 IF PZ=13 THEN P1=7:RETU
2940 PRINT'ts Ol.K" :AE=2
ACWs Bits EHs Nils Alts R
2350 G$U9)="AN OPEN COFFIN"
RN
2950 FOR I=! TO 5:IF V$iU=6
Its EJ [s Olts Fl Is Tits HI
:AN=2:RETURN
2680 IF PZ=1 THEN PZ=4:RETUR
$16) THEN W(I)*B»(6I* > (LIT
[fi El ts Bits Oils 61
2360 IF PI=B AND A6>0 THEN P
N
i':E$(6l=V$m
2138 IF PZ=23 AND AJ=1 THEN
RINT'ts Il'D ts Dlts Ills Al
2690 IF PZ=25 THEN PZ=26:RET
2960 NEHiRETURN
PRINT'ts IJ THINK Is I] CAN
ts L3 THE COMBINATION" :RETU
URN
2970 IF ADwl THEN PRINT'ts
FOLLOW THE HAP':AJ=3
RN
2700 IF PZ=40 THEN PZ=39:RET
13 HAVE NOTHING TO SQUEEZE":
2140 IF P!=23 THEN RETURN
2370 IF PZ<>13 THEN PRINT'ts
URN
RETURN
2150 IF R=16 AND A0=1 THEN P
N1DT HERE!':RETURN
2710 IF PZ=32 THEN PZ=31:RET
2980 IF AAO l THEN PRINT'SON
RINT'ts T]HE DIART READS :-'
2388 IF ABOl THEN PRINT'ts
URN
E DROPS OF LEMON JUICE FALL
:60SUB 2220:RETURN
11 NEED THE KEY":RETURN
2720 PRINT'ts S10RRY":RETUR
TO THE FLOOR ":RETURN
2160 IF PZ=45 THEN H='A SUR
23^0 PRINT'ts 01. [5 K1.":AB=
N
2990 IF AL=0 THEN AL=2880*IN
GE OF POWER RUNS THROUGH IT
2:RETURN
2730 IF PZ=26 THEN PZ=25:RET
T(RND(0)t2000J
B0DT":80SUB 2008
2400 GOSUB 1958
URN
3000 PRINT'SOHE JUICE FALLS
2170 IF AAOl THEN PRINT'ts
2410 IF LIOl THEN PRINT"ts
2740 IF PZ=39 THEN PZ=40:RET
ONTO THE NOTE AND A SECRE
13 CAN'T DO THAT JUST YET':R
11 DON'T SEE A ';L$
URN
T MESSAGE APPEARS."
ETURN
2420 E=0:FOR 1=1 TO 5:IF V$(
2750 IF PZ=31 THEN PZ=32:RET
3010 PRINT'ts I1T READS :-'
2180 PRINT'ts TIHE NOTE READ
X>=GS (NZ <R) 1 THEN VJU)=":E
URN
3020 PRINT'tBLACKHs T10 OPE
S !-"
=1
2760 IF PZ=4 THEN PZM :RET
-w f— — _ r r - r T i ■ A. l
N THE SAFE DIAL :-";AL
2190 PRINT'ts TIHERE'S NOT H
2430 NE XT ; I F E=0 THEN PRINT"
URN
3030 RETURN
UCH POINT IN THAT":RETURN
Is 11 DON'T HAVE IT":RETURN
2770 IF PZ=7 THEN PZ=13:RET
3040 IF PZ<>8 THEN PRINT'NOT
2200 PRINT'tREDKs Olts Ells
2440 BI(NZ(RI,1)=PZ
URN
HERE" :RETURN
Sits Tits RKs Oils T) Is T
2450 IF R=l THEN AA=8
2780 PRINT'ts DION'T BE ABSU
3050 IF AG<1 THEN PRINT'NOT
Us Hits El Cs Nits Olts Nit
2460 IF R=2 AND AB=1 THEN AB
RD":RETURN
YET":RETURN
s Sits Tits Elts Rl'
=0
2790 IF PZ=41 THEN P2=42:RET
3060 IF AL=0 THEN PRINT'ts I
2210 RETURN
2470 IF R=3 AND AC=1 THEN AC
URN
] DON'T KNDH THE COMBINATION
2220 PRINT " [ BLACK] Es A1PR1L
=8
2800 IF PI=17 THEN Pl=lb:RET
":RETURN
1ST 1B95'
2488 IF R=4 THEN AD=0
URN
3070 INPUT'ls N1HAT DO ts 11
2230 PRINT'ts T1HE MONSTER H
2490 IF R=6 THEN AE=0
2810 IF PZ=7 T HEN PZ=8:RETUR
DIAL ";6A
UST BE DESTROYED!!'
2580 IF R=9 THEN AF-0
N
3888 IF ALOBA THEN PRINT ts
2248 PRINT'ts FUND THE ELEC
2518 IF R=l» THEN U='ts T1H
2820 PRINT'ts DION'T BE SHIP
NJPONG COMBINATION" :RETURN
TRODES AND BRING IT BACK TOL
E BOTTLE BREAKS AND SPRAYS H
ID":RETURN
3090 PRINT Is TIHE SAFE OPEN
IFE!'
E WITH ACID":GOSUB 1190
2830 IF PZ=42 AND AM(2 THEN
S"
2258 PRINT'ts Tits Hits Elts
2520 IF R=26 THEN AI=0
print-is Il'D need to dig a
3180 G$115»='AN OLD MAP SHOW
Nl ts Tits Alts Kits El [5
2530 IF R=15 AND AJ=1 THEN A
HOLE FIRST ":RETURN
ING A SECRET PATH THROUGH TH
IHs T3 Es Tits 01 ts Tits H
J=0
2840 IF PZ=42 THEN PZ=4!:RET
E BOS'
Its E3 ts Bits Olts S3'!'!':
2540 IF R=17 AND AK=1 AND PZ
URN
3110 RETURN
RETURN
=34 THEN AK=2:SZ(34,3)=42:G0
2850 IF PZ=16 THEN P1=17:RET
3120 0H8)=Q$'6i* ts T1HEPE
2260 IF PZ=41 THEN GOSUB 231
SUB 2630:RETURN
URN
T f" ti F A F F' k 1 T 1 1 F hlhl 1 1
IS A SAFE ON THE WALL
*: RETURN
2558 IF R=17 THEN AK=0
2860 IF PZ=8 THEN PZ=7:RETUR
3130 PRINT'ts TIHE PAINTING
2270 IF PZ=8 AND AG>8 THEN P
2568 IF R=18 AND AH=1 THEN A
N
hi | ■ u #— . r\ *. r t t*f f b 1 1 ■ i t kir r r t f* f*
SWINGS ASIDE ON HIN6E5 TO R
RINT'ts I I'D BETTER ts Bits
M=8
2870 PRINT'ts DION'T BE SILL
EVEAL A SAFE."
IHs Alts LI THE COMBINATION
2570 IF R=22 AND AN=1 THEN A
t!":RETURN
3140 RETURN
":RETURN
N=8
2880 IF PZO! THEN PRINT'ts
3150 IF MK>] THEN PRINT'ts
2280 IF PI013 THEN PRINT"ts
2580 IF R=U THEN AO=0
11 CAN'T SEE ANYTHING HERE"
N1ITH MY BARE HANDS ^":«ETUR
N10T HERE!":RETURN
2590 IF R=25 THEN AP=0
:RETURN
N
2290 IF AB<2 THEN PRINT'ts I
2680 IF R=23 AND AR= 1 THEN A
2890 IF AI=0 THEN PRINT'ts I
3168 IF PZ<>42 THEN PRINT ts
IT'S LOCKED ":RETURN
R=8
] SEE SOMETHING AMONGST THE
TIHE GROUND S TOD HARD 1 :Rt
2308 PRINT'ts 01. ts Kl.':SZt
2610 IF R=21 AND ASM THEN A
RUBBISH"
TURN
13,1)=7:RETURN
S=8
2900 IF AI=8 THEN 6$(26>='A
3178 PRINT'ts 11 DIG DOWN TO
2310 IF P104J THEN PRINT'ts
2620 RETURN
BOX OF HATCHES" :AI=1:RETURN
THE COFFIN" :AH=2:RETURN
1 1 f a hi / T nn that urnr t ■ .rii"T
11 CAN T DO THAT HERE ' :Rti
iojc rruni 15 1 Jnc HULr tHla
lilt rKlNl Is 1 JHtKfc b NUIH1
JldV lr Hr\/I men mini is
URN
IT AND RUNS ANAY"
NG ELSE HERE":RETURN
W1HAT HITH..?":RETUMI
2320 IF AN<1 THEN PRINT'ts I
2640 6$U7)='S0NE CRUHBS':N$
2920 IF AE<1 THEN PRINT'ts H
3190 IF PZ<>22 THEN PRINT'ts
) HAVE NO SCREWDRIVER! ':RETU
U7t="CRUHBS'
JON AN ts 11 SUPPOSED TO DO
N10T HERE":RETURN
3288 IF N<] THEN AQ=i:PftINT
■Is T]HAT'S DOME THE TRICK!"
:G$U2>='A BROKEN PADLOCK"
3218 RETURN
3221 IF PI=22 AND AQ<1 THEN
PRINT'ls HT'S LOCKED" :RETU
RN
3238 IF P2=22 AND AR<2 THEN
PRINT'ts U HAVEN'T CONNECTE
D THE ELECTRODES IET! - :RETUR
N
3248 IF PZ=22 AND AS<2 THEN
PRINT'ts U HAVEN'T FOUND A
HEN HEART TET" :RETURN
3258 IF PI=22 AND AC<3 THEN
PRINT'ts HOI HAVE TO SEN I
T UP FIRST !":RETURN
3268 IF P2=22 THEN AT=1 :PRIN
T'ts T)HE MONSTER CONES TO L
IFE. . .•:S*<B)= - AH EVIL rtONST
EH'
3278 IF PI=22 THEN RETURN
3288 IF Pl=45 AND AU=8 THEN
PRINT'ls SJOHETHING HAPPENED
■:S2(45,2)=46:AU=1:RETURN
3298 IF PI=45 THEN X$='A SUR
BE OF PDHER FLONS THROUGH HI
BODT':GOSUB 2898
3388 PRINT'ts THERE'S NOT H
UCH POINT IN THAT":RETURN
3318 IF Pl=19 THEN Jf='ts T3
HE MONSTER'S HANDS GRAB NT T
HR0AT':60SUB 2888
3328 IF PI=34 THEN H=Ms T3
HE WOLF ATTACKS nE'iGOSUB 28
88
3338 PRINT'ts II SEE NO POIN
T IN VIOLENCE HERE" :RETURN
3348 IF PI<>41 THEN PRINT'ts
N]OT HERE 1 ' :RETURN
3358 IF AFOl THEN PRINT'ts
N3HAT WITH ? ':RETURN
3368 ^ AN=3 THEN RE T URN
3378 AN=3:PRINT'[s IJ'LL HAV
E TO CLOSE NT EYES TO DO THI
5!"
3388 G$I28!='A MUTILATED COR
FSE':6$i2n='A FRESH HEART':
RETURN
3398 IF WOW THEN PRINT'ts
H CAN'T DO THAT HERE'" :RET
URN
3488 IF AS=2 THEN RETURN
3418 IF AS=8 THEN PRINT'ts N
JO HEART ":RETURN
3428 PRINT'ts U FIT THE HEA
RT..ts U'U NEED T 0 SE** IT
UP NOW ' "
3438 B*(8>=B*18>*" iNlTH A
NEN HEART)'
3448 FOR (=1 TD 5slF Wtl)«fi
$(21) THEN
3458 NEXT :AS=2 :RETURN
3468 IF AC<1 THEN PRINT'ts I
] HAVE NO THREAD' ':RE T :PN
3*78 IF AC=3 THEN RETURN'
3488 IF AS<2 THEN PRINT'ts I
3 HAVEN'T FITTED THE HEART T
ET":RETURN
249* AC=3:PRINT'ts QMS K).
ts I] SEN IT UP'iftETURN
35M IF WOW THEN PRINT'ts
KjHAT AN ABSURD IDEA":RETU
RN
3518 IF AR'.I THEN PRINT'ts H
]DN n " :RETURN
3528 IF AR=2 THEN PRINT'ts T
]HE MONSTER IS ALREADY CONNE
CTED":RETURN
3538 PRINT'ts 03. ts K3. Is I
] CONNECT THE ELECTRODES TO
THE MONSTER"
3548 AR=2:F0R K=l TO 5:IF V$
(I»=fi$(23) THEN VIUI="
3558 NEIT:RETURN
3568 PR I NT ' [ CLE AR ] t DONN 3 1 DON
NKD0NN3ts T3HE MONSTER SINK
S INTO THE PEAT BOG.'
3578 PR I N T ' t DONN J I DONN 3 [ DONN
3lBLACK3ts N3ELL ts D30NE. I
s riOU HAVE SOLVED THIS
ADVENTURE.' ■
TAPE BACK-UP DEVICES FOR CBM 64, 128, VIC 20
^;%0«.-MM M «TW00»T*«TT..O«.»U0.O«CO«t.« ..- «•.»
c~iv v, qoj hi* Duii-m WxxKpoa**' ID" audit"* fl*U -no*"liy
** NEW * * THE EXPERT CARTRIDGE,
TAPE TO DISK & DISK TO DISK SYSTEM
, n ^tEZESANO 'RANSFEBS ALMOST WLPHOGRAMSAI THE PRESS OFAByTlOM.
C1 28 80 COLUMN CONVERTERS & LEADS
55l£o*l*NCOlUMNMOfK":HnC*«l»OAPIOOFOOIV. CM.tS
C.ieiOCOLUMNLEAOS/ADAPTORS-ALLALSOmCLUDCCONNECTIONFOHSOUND
l o id* « n d Ad.plor . m.d. to-o-d.. (o. Oth.. monitor. - — at**!- PL—
BU 64 ft SPECTRUM REPAIRS- PLEAS* TMFHONI FOR DETAILS
ft COMPETITIVE PRICES
FREE CATALOGUE SENT UPON RECEIPT OF LARGE SAE (17p .t-mpi
<,i, FAST MAIL-OfiDER SERVICE <ris
ft* ALL MUCSS INCLUDE VAT A PO«TAOI 6*
Pavmert bv cheque, postal of bet. cash. Transcash (pay al any posl office, by quoting
¥ ™7a« no650^ your name and address and wh.cn terns you require)
EXPORT: Please add CI e««a. paymenl tn sterling only pltSM
MAILORDERS TOi M HOLME LANE. BRADFORD BOA OQ*
CALLERS WELCOME AT 329 TOMQ STREET,
■RADFORD 1D4 SQY IQ274) SSA2SS
TRILOGIC
* FREE SOFTWARE * FREE 15 MONTHS MEMBERSHIP *
A qteat new home computer club now under way" Savings on soflwa re and
hooks from 25% & up lo 40% oil R.R.P. originals only. Your never
Emitted Tlo any makes of soflware or books nor are you committed lo
Every ,wo months you get a software update. »otya« and game
nlavnq tips Savings on hardware from 15% and up to 30% off R.R .P. not
fusTiovSs but a wide range of peripherals for your computer Normally
Soersh-p ?,s £1 5 for 1 2 months Bui for a limited per^d<^ly membership
>s FREE for 15 months when you buy a program listed below with a RRPo
£7 95 or more through us Choose one of the en^^P^JJ" g u '
Iree bi-monthly software. Our club is designed for all Commodore 64 &
128s
COMMODORE 64 *
ELITE (0)
ACE
SKYFOX <D)
HARD BALL (D) .
hEVS(D)
uridium |d|
nightshade
spitfire 40 101 ...
bouncers
MERCENARY (D)
TIME TUNNEL (D)
ARC Of YESOO ...
128
£14.95
£10.95
I 9.95
£ 9 95
£14.95
C 8 95
£ 9.95
f 9.85
£ 9 «
£ 9.95
£ 9.95
£ 8.95
RACK TO 'HE
FUTURE
PARADROID
QUAKE MINUS 1
DEATHWAKE
NODES OF YESOD
MAX HEADROOM
YIE AR KUNG FU .
LORD Of THE
RINGS (D)
FRANK BRUNO'S
B. ID)
£ 9 95
£ 7.95
£ 9.95
£ 7.96
£ 9.95
E 9.95
£ 8.95
£15 95
£ 8.95
ROCK ft WRESTLE
(0)
THE EIDOLON (Dl
B McGUlGAN'S
wee (Di
WINTER GAMES (Dl
KUNG FU MASTER
(Dl
THE WOF EXPING
F (D| . .
FIGHTER PILOT (D)
CRITICAL MASS
£ 9.95
£ 9.99
£ 9.99
.1 9 99
£ 9.95
£ 9.95
£ 9.95
£ 8.95
one of tbe
One of these Master! ronic games is FREE when you buy
above programs *KANE * LAST V8*
• ONE MAN A HIS DROID * ACTION BIKER • KIK START*
Who said anything about you don't have a choice In s oftware''
• BUSINESS - UTILITIES - EDUCATION - ARCADE"
•ADVFNTUHE - ARCADE ADVENTURE - SIMULATION • STRATEGY.
These are ( ust a lew hardware prices which are exclusive to our club
members:
COMMODORE MPS 801 -SEIKO
WATCH £, *2-!S
COMMODORE MPS 1000 PMNTERUIl 50
STAG SG IOC PRINTER £214.95
BROTHEH HAS PRINIt" £
COMMODORE DPS "01 £189.95
COMMODORE 1570 £169 25
COMMODORE 1900C £254.95
COMMODORE 190OM £ 84 95
COMMODORE 1701 £169.95
COMMODORE 1541 • SEIKO
WATCN £169.95
Our complete price list is much bigger than this, for any inquiries that you
may have please ring (0376) 45639 24Hr serv.ee (it's much quicker than
writing).
Please make cheques /postal orders payable to T. L DAVIS.
All priced items includeVstage & packing except harowareUems below
£100. also are correct when going to press. {D) means the program is also
available on disk. Please ring for disc prices
Post to: THE T. L. DAVIS HOME COMPUTER CLUB,
286 WOODBRIDGE ROAD.
IPSWICH, SUFFOLK IP4 20 U
41
bouts 0>on
points
2?
THERE HAS BEEN A LARGE
number of 'fighting'
programs appearing over
recenl months, we've had
kung-fu. wrestling and shoot-
ing. Now Beyond has brought
out a game that combines the
elements of a 'fighting' game
with those that expect you to
get a ball in the goal, as in
football.
You find your player in an
arena, you at one side and
your opponent at the other.
Both players are tied to the
wall behind them by a length
of elastic, and are armed with
some sort of scoop with
which you can try to catch the
ball that is flying around the
Points are awarded for
getting the ball in the net,
which is situated at the top of
the screen or for knocking
your opponent over.
What makes this game so
much fun is watching your
players floundering on the
floor being dragged along bv
the elastic and seeing them
being knocked senseless by
the walls at either end.
There really isn't a lot
more that can be said about
this game apart from the fact
that the idea is extremely
original and that Beyond has
created a game that is great
fun to plav.
S.C.
screen.
ONE OF THE BLOODIEST
battles in the Second World
War was the attempt by the
US Marines to regain the
island of Iwo lima from the
t a p a n e s e . John Wayne
managed it. Now, thanks to
the title in the PSS Wargames
Series, you too can see if you
have a flair for tactics.
You have between 32 and
36 turns to eliminate all the
Japanese forces from the
island depending on which of
the five skill levels you select.
Tactics must be selected care-
fully as both all out attack and
solid defence are likely to
meet with failure. Whilst you
receive re -infor cements
(weather permitting), the
Japanese don't and so tend to
launch suicide attacks when a
unit is close to being wiped
out.
The game is controlled
entirely via a joystick using it
to select from your various
units and determine their
options from assorted menus.
These options include land-
ing on one of the six beaches,
move, attack or pass.
Each unit has aggression and
defensive factors, a move-
ment allowance andacombat
range.
Iwo |ima is a very user
friendly wargame and I found
it more challenging to play
lhan its sister game Falklands
82. G.R.H.
IN THE DIM AND DISTANT
past the only video game
available was a crude table
tennis simulation called Ping
Pong. Do not confuse it with
this little pearl from Imagine.
The opening streen is
typical Japanese cuteness
where a ping-pong ball
bounces out Konami's name
and then bounces down on to
the head of an unsuspecting
mole. After selecting the level
of play the next bold graphic
display shows the view of the*
table from the human player's
end with an audience just off
in the wings. At eat h end of
the table is a disembodied
hand grasping a bat.
During play the bais
follow the path of the ball
automatically and the only
control that you need worry
about is the kind of stroke to
play.
Occasionally a stroke will
result in a 'floater', a weak
shot which suggests a
superfast smash as a reply. In
the lower levels this is no
problem but as you progress
through the levels, the game
gets faster and faster and
relies more on reflex action
just like the real thing.
The only qualms about
this excellent conversion is
the lasting appeal of the
game. £ D
ACTION E P L A v
Or>q>n>l>lv PUyabliitv Graptwc» value If
Man**
DURING THE CURRENT
burst of interest in the C-16/
Plus/4 market a lot of C-64
games are gaining a new lease
of life. Skyhawk resembles
Virgin Games' Falcon Patrol
which has long been a
favourite of mine.
for approaching bombers.
At first each wave consists
of two planes but this gradu-
ally increases to four as the
game progresses.
Unlike Falcon Patrol, the
jet cannot descend into the 3D
scrolling landscape. This
m^kpi; rpfnplline less hazard-
advanced VTOL fighter it is
your job to see off the enemy
bombers which are devastat-
ing the countryside. Fuel and
air-to-air missiles (AAMs)
must be monitored carefully
during each battle and should
the need for re-equipping
your fighter arise you will
have to be fast and careful
and keep an eye on the radar
ous, but still tricky, because
the plane cannot crash unless
it collides with a bomber.
Skyhawk is a game of
survival. The bombers keep
coming until you have run
out of jets or fuel after all of
the refuelling platforms have
been destroyed. Cheap,
cheerful and quite addictive.
E.D.
I
AIR ATTACKS FROM AIR- seascape is gradually un-
craft carriers can best be furled, but this is no tourist
stopped by sinking the float- trip because soon the enemy
ing airstrip which harbours is there in front of you.
the planes. Sound logic but The first day is easy
not as easy as it seems. First pickings because most of the
you have to battle through planes are flying in the same
the waves of fighters which direction asyourself but more
protect the ship. This is your slowly. Taken by surprise, the
mission in Bandits at Zero and pilots rarely fire back and the
it is quite a challenge. only real problem is your own
The game starts with your skill at avoiding collisions
solo fighter-bomber flying with them. A cautious eye
low over the sea searching for should be kept on the radar
the enemy. First there is an screen for the occasional
encounter with a refuelling attacking plane which zeros
plane to top up your tanks in on you from the opposite
ready for the long day ahead direction at high speed. If a
but soon your radar display collision occurs you lose one
becomes live with tiny blips of your seven protective
which denote the enemy shields.
fighters ahead. As the plane After this leisurely cruise
flies to join combat the screen across the rolling seascape,
scrolls smoothly as a coatline night gradually falls (nice use
of colour as the daylight Before long you begin to
gradually fades). By now your wish that day three had not
fuel is critically low but there dawned and regret that it
is help at hand as you rendez- did.
vous with the tanker once Graphically, the game
more. Tricky business, this appears a lot more sophisti-
aerial refuelling lark. Altitude cated than it actually is and in
and speed are critical as the comparison to many other C-
umbilical cord isattached and 16 games it shows what a
if you take too long dawn will thoughtful programmer can
break and the tanker will do within the cramped
zoom off to safety. Enemy memory confines of the
attacks are few at night but machine. Adding an extra
occasionally a fighter will problem to deal with as each
appear. The best policy is screen goes by, helps to stave
prayer. Fuel is more off the boredom of a straight
important than fighting so forward shoot-em-up.
with a little bit of Divine inter- The only really weak point
vention and a gritting of your of the game is the music
teeth as you bite the cord, the which is mournful and un-
night will pass without the imaginative. It only appears at
loss of another shield and the the end of each day so I won't
sun will come up on a freshly complain too loudly,
refuelled jet eager for Ammunition supplies are
another day's action. reminiscent of a cowboy's six-
The new day brings with it gun in the old silent movie
a new breed of pilot, the rear days, bullets are unlimited,
guns blaze in your face and In this way the
their rockets spit out at you if temptation to fly with trigger
they get behind your plane. finger down would have to be
More jets appear to be flying curbed in favour of accurate
towards you at high velocity and thoughtful gunneryskills.
and your shield count is in Don't allow these criti-
danger. Night seems a long cisms to draw you away from
way off as you fly on towards the fact that this is a superb
your target across the never- game worth every penny of
ending sea. your hard earned cash. If
Another nocturnal re- things do get a little dull you
fuelling finds you closer still can sweep your jet back and
to your target. This is forth across the skies,
indicated by the fleet of In this way the program
battleships which are sending commits more enemy planes
up a battery of shells. Still the into flying towards you at a
enemy planes attack and the high rate of knots increasing
tiny black flecks of flak your problems three-fold,
threaten to blot out the sun. J.G.
ACTION E P L A V - S~ v
Ma«»i
fHE SNOW
IN DECEMBER 1944 HITLER'S The weather conditions of
army was being driven back those fateful days of long ago
towards the Fatherland and a are faithfully reproduced
major counter offensive was during the game, deter-
needed to drive the allies mining whether your air-
away from the Rhine. The borne supplies can be flown
conflict that ensued became in or not. Being Northern
known as the Battle of the Europe in the dead of winter.
Bulge and marked the you soon learn to take ad-
beginning of the end of vantage of the few clear days
World War II. that occur. Supply level
A major part in the offen- affects the fighting strength of
sive was played by the Panzer your units and can become a
Tank Divisions of the German crucial factor in your success,
army. These powerful tanks The situation at the be-
had earned themselves the ginning of the game is thai the
nickname of 'tigers', hence Allied Forces are represented
the title of this simulation. by greenhorn American
As in the real battle the troops against a very experi-
action begins on 16 enced and strong German
December and ends on 27 army. The initial aim of the
December. Players can take Allies is to hold back the on-
charge of each army or the slaught until reinforcements
computer will play the role of arrive. For the Germans it is to
the enemy. break through and cross the
River Meuse, taking the
major towns of Bastogne, if any, and live to fight
Marche and Rocheforl on the another day. The longer a unit
way for maximum'points. The survives the greater the
eventual aim of the Allies is to number of combat ponts that
breakthrough to the East. are awarded at the end of
Each day is broken down each day. A unit with fewer
intoasequenceoffivemoves. than 25 points is in serious
Firstly the Germans alter their trouble and must rely on
positions and enter into such plenty of movement points to
skirmishes as these moves pull back out of harm's way
allow. Next it is the Allies turn while they recover. This I
to do the same. After this, re- learned from bitter experi-
inforcements are placed on ence!
the map and Victory Status is Extra combat points can
assessed to see if the game be awarded if you chose to
can continue. Finally, you are include an artillery barrage
given the option to save the with your attack. Each day you
game before the next day have a number of artillery
dawns. points awarded and you are
The result of a battle is given the option of using a
determined principally on limited amount of fire power
the relative strength of the to shore up a flagging unit,
units involved and the The documentation which
strategy chosen for attach and accompanies the game is
defence. If the result of a extensive but confusing. A
battle is a dramatic win, the map of the whole area is also
victorious unit may advance supplied but I found it to be
three squares and attack confusing. Locating my start-
again later that day. Defeated ing position took a while and
forces may retreat if there are this wasn't helped by the key
any combat points left. Some- being some distance from the
times this will overtax an map itself,
undersupplied unit and they Eventually, I struggled
will be wiped out. through the documentation
Attack strategy can be a and found that the best way to
major offensive, a medium learn is through experience. I
battle, a light skirmish or a fought long and hard but I
gnat bite of a reconnaissance regret to say that if it had been
mission. In defence you may left up to me we'd all be sing-
chose to counter-attack, try ing German folk songs by
to hold your position, with- now! This is an enjoyable
draw or try delaying tactics, simulation but this battle is
Choosing the correct re- popular for computer
sponse to your opponents strategy games and I have
strategy is the aim so that you seen better in my time,
will lose fewer combat points, E.D.
YES, IT'S YET ANOTHER
flight simulator! This one sees
you in charge of a jei fighter
defending your island from
the enemy planes. Their
target is the nuclear power
plant and it is vital that you
intercept their bombers
before they reach their
destination.
The screen display is in
two halves, the top window
showing the view from your
cockpit whilst the bottom
part of the screen contains
your instruments. These
include a radar, compass,
several guages and warning
indicators and a scrolling map
of part of the island. A full
screen map of the entire
island can be called up at the
press of a button.
Although the instruments
look complicated, controlling
your plane is very simple. You
can attack an enemy plane with
either cannon or missile, but
you have finite supplies of
both. You also get the chance
to refuel in mid-air providing
that certain conditions are
met.
Wing Commander was
written back in 1984 and is
beginning to look a bit dated
now but if you want to try a
cheap flight simulator before
splashing out on a more
sophisticated model, it could
be just the thing you are look-
ing for. G.H.
ACTION
E P
a
ling Unitt
Pleasure Doiet
iPlock 3t
282 Fuel Dump
5 00 Power Planx
GC Pleasure Dm
Z Crew Quartei
PRODUCING COMPI-
lation tapes for charity
organisations is becoming
popular. Off The Hook is yet
another and all proceeds
from the tape are going to the
Prinnce's Trust for the re-
habilitation of drug addicts.
It is very difficult to
comment on a tape that is
being sold for charily as you
obviously want the people
involved to sell as many tapes
as possible. Thankfully in the
case of Off The Hook the 10
programs included are all of a
fairly high quality.
Programs included on the
tape are the second of Act-
ivisions programs featuring
Pitfall Harry and isgreat fun to
play. Harry is trying to rescue
his niece - makes a change
from Princess - while
avoiding the many dangers
on his way such as scorpions.
giant frogs and electric
eels. This game kept me
occupied for a long time,
never dies may have
something to do with this!
Next on the cassette is
Space Pilot 2 from Activision.
This game offers nothing out
of the ordinary and looks a
little dated. Nevertheless
flying your space ship over a
scrolling backdrop and
shooting enemy ships is still
great fun.
Probably the largest and
most complex game on this
cassette is Psytron from
Beyond. When this game was
launched on the Spectrum
around two years ago I didn't
get anywhere with it and I've
not improved in those two
years. You are in charge of the
Betula 5 installation and must
defend it against enemy
invaders. This means that you
must shoot them out of the
skies, goafterany that gel into
your buildings and see lo any
repairs that your complex
needs. Psytron is a very com-
plex game - the fact thai the
instructions take up more
space than all of the other
games on the cassette put
together shows this.
Fall Guy from Elite allows
you to play thai famous TV
character Colt Seavers the
stunt man. Your job is to
perform all the stunts set in as
little time as possible.
Nothing really exciting here
but well worth loading in for a
quick half hour.
Demons of Topaz from
Firebird places you on the
asteroid Topaz. Your aim is to
find the sacred crystals that
are scaiiered around the
many levels of the asteroid.
Yes you've guessed it.
Demons of Topaz is a plat-
form game. It is however
quite well produced and is
good fun to play.
Sheep in Space from
Llamasofl should need no
introduction. But, jusl in case
you've never heard of it, it's a
liitle similar to a Defender
game, but in ihis case there's
no one to rescue and you
must kill all of the Hostiles
before they can blow up your
planet. Oh by the way, you
aren't given a spaceship, this
time you are an intergalactic
sheep.
Kong Strikes Back from
Ocean is probably the most
disappointing game on the
cassette. Mind you, when you
think of the price it's not all
that bad. In this game you
must guide your man up the
fairground track to rescue
your damsel in distress. Of
course there are objects for
you to avoid on your way up
such as roller coaster cars and
springs.
Black Thunder from
Quicksilva finds you charg-
ing along a number of roads
shooting evrything in sight.
An extremely fast game and
great fun to play.
Death Star Interceptor
from System 3 is the penul-
timate game on the cassette.
This game finds you once
again in control of a space-
ship trying to save the galaxy.
Again nothing out of the
ordinary is offered but if you
are into zapping aliens then
you'll probably enjoy it.
Bringing up the rear is
Talledega, and that's exactly
what I did in this racing game,
and this one offers nothing
out of the ordinary though it
is great fun to play.
When you consider the
amount of money that is
being asked for this cassette
and then work out how much
is being asked for each game
it's impossible to complain.
Even if there are only a
couple of games on the
cassette that you haven't
already got then its still worth
the asking price. Go out and
buy it NOW. S.C.
SCORE
. . Mfieic . .
ii u
ANYONE WHO DEFEATED
the evil pumpkin in the
original Cauldron now has the
chance to turn the tables. The
Witc h Queen is in charge of a
wholly evil regime. The only
person who can. put things
right again is you - a brave
pumpkin warrior!
Cauldron II is a sort ot
platform game but instead of
jumping, you bounce and this
is likely to take you sometime
to get used to as our hero
rebounds off walk like a ball
bearing on a pin table. Start-
ing in one of several
randomly chosen locations,
you must collect assorted
objects before you can
depose the queen. These
include crown, scissors and
axe. There are various nasties
trying lo stop you and collid-
ing with these depletes your
energy. You can however
pick up glowing spheres
which both replenishes your
energy and allows you lo fight
back by hurling these spheres
at your enemies.
The graphics are good and
amusing with some lovely
touches such as when a gar-
goyle lips you off a platform
into open space. But I would
have preferred it if every-
thing scrolled instead of
jumping from screen to
screen - you are never quile
sure what nasties lie in wail
tor you. G.H.
ACTION R e p l A J, £ &
» ■ ■ ■ » * Onq.n.-.hly Piayabllil, Graphic* Valuo For
Money
COUNTDOWN TO MELTDOWN
Mastertronic MAD Range £2.99 Joystick required
AFTER AN EXPLOSION IN A
nuclear power plant, the
central core is overheating
and there is a considerable
danger of a second blast. Your
task is to dampen down the
reactor rods using a team of
remote controlled android
commandos.
You have eight robots to
manipulate, each with a dif-
ferent set of skills and must
guide them through the 2000
rooms on eight levels as you
try to reach the core in time.
There are assorted intruders
that must be disposed of
before they sap your strength
and mobility etc and render
until he can be repaired by
one of his companions.
Moving the robots and
firing is via the joystick but
there are also several key-
board commands for using
the objects that you have
found. The graphics are fairly
simplistic - 3D views of the
rooms with exits and nasties
shown but you can switch
between views to show the
doors more clearly.
Countdown is an interest-
ing game that will keep you
quiet for ages - you can save
your current position. If you
enjoy large scale mapping
games, this is good value for
monev. C.H.
SPACE PILOT
Anco/Kingsoft C-16 ♦ Joystick £5.95
3 2
SPACE PILOT STYLE GAMES
have been with us for many
years but this is the first that I
have seen for the C-16.
The game is one of survival
as you roam the galaxy facing
the attacks of innumerable
alien craft. Flying singly or in
formation these demons are
armed with heat-seeking
missiles which will attemp to
snuggle up close to your ship,
vapourising you astheydoso.
The background of stars
scroll with a beautiful 3D
effect in every conceivable
direction but this is where the
price of sophistication must
be paid. All this activity
results in a dpfldcninp t>H&rt
SOLO
Bug-Byte C-16 + Joystick £2.95
on the spaceship's movement
lessening the excitement
which the gameply has to
offer.
It is also noticeable that
the complexity of the angled
scroll is slower than the
simpler vertical or horizontal
scroll but I will accept this as a
game 'feature'.
I do feel that the game is
playable and certainly stunn-
ing. Each of the four waves of
aliens are armed with missiles
which behave in their own
characteristic way.
To use a cliche, this is a
flawed masterpiece. E.D.
PROGRAMMER STEVEN
Kellett's name keeps cropp-
ing up on C-16 games. He
specialises in unsophiscti-
cated shoot-em-ups which
rely purely on fast reflexes for
survival.
This time he appears on
the Bug-Byte label with a
typical product of his en-
deavours which provides
mayhem with a storyline.
Solo is the fighter you
control in your battle against
the aliens who appear in
droves to annihilate you. The
action is swift as they hurl
everything at you in their
venomous attack. Solo can
move in any direction on the
screen.
At the beginning your
craft sits on the bottom
border but you'd be fool-
hardy to sit there too long. In
a matter of seconds the
screen explodes into frenzied
activity and a second wave of
attack will start before you
have wiped out the first.
There are 10 waves of
terror to test your staying
power and I suspect that
survival through all of them is
impossible unless you have
nerves of steel and reflexes
honed to superhuman effi-
ciency.
Lovers of unpretentious
zapping games will love this.
F.D.
AATIAM P F P I A V f 1 E I)
^^^^^ 1 l^^^l^l ' * * ■ * * Onginjhl, playflbMtv G.-.ph,cS V^IUP For
THE CHIP FACTORY
Supersoft C-16 + Joystick £6.95
i 3
37?
HOCUS FOCUS
Quicksilva £8.95 Joystick optional C64
KNIGHTS OF THE DESERT
US Gold/SSI £9.95 cassette, £14.95 disk CM
CHARLIE IS A TRAINEE
accountant who sneaks into
the chip manufacturing plant
to try his skill at production.
Bugs, sparks and the odd
spanner in the works run
rampant at night and it is up to
you to guide the lad around
the screen to produce his
microchips.
This is a platform game
and a conveyor belt runs
along the bottom of the
screen. On the conveyor are
sockets and Charlie has to
drop the chips from level to
level so that they fall into an
empty place on the belt.
When all of the places on the
to the switch at the top of the
screen to wind the belt on.
The nasties also wander
around the platforms and
contact with them can be
fatal.
Completely filling a
conveyor belt allows Charlie
to move on to a new produc-
tion line and further
problems.
The graphics could be
more imaginative but this
does not affect the game too
much. The action is certainly
frantic and the planning of
your next move is frequently
thwarted by the numerous
nasties. Simple but effective.
J.C.
5 jj&
JEREMY IS A YOP PHOTO-
grapher working for the Daily
Shocker and is given the
assignment of taking pictures
of the Potty Professor's
inventions in his hidden lab.
The whole cave system is
radioactive and protected by
genetic mutants who are
intent on stealing your film
and sword - your one means
of protecting yourself.
The parts of the inventions
are hidden in assorted objects
which must be searched
before you can take a picture
of them. Some objects
contain ghostlike figures that
again steal your film. When
you have some pictures ready
to develop, you can make
your way back to the start
where you get the chance to
place the pictures on to a
large grid.
Moving Jeremy is a simple
left, right and jump although
there are several other
functions which are icon
driven. These are: examinean
object, take a photo, pick up
or switch on an object and
fight.
Icons are supposed to
make things easier to mani-
pulate, but they just don't
work here.
C.H.
5 JL 4 s£ 5 i,
DESPITE THE FACT THAT HE
was on the "other side"
during the Second World
War, Rommel was renowed
and respected for being a
decent fellow and a brilliant
commander. It was only the
fact that the British, under
Montgomery, had cracked
the German codes and so
knew every move that he was
going to make, that led to his
ultimate defeat in North
Africa.
The first thing to be said is
that this is an incredibly
complex wargame and would
be best suited to someone
with a fair amount of ex-
perience or a lot of patience.
Players take it in turn to rein-
force, supply, move and fighf
as the Germans attempt to
take Alexandria whilst
defending their main base of
El Agheila.
The game is played on a
hex grid that whilst not
exactly graphically stunning,
is perfectly adequate. The
instructions are long and
complex (a book would have
been better than the huge
closely printed sheet) and the
gameplay is hardly user-
friendly. But, if you enjoy
wargames or are interested in
the historical aspects, there is
an awful lot here to keep you
occupied.
G.H.
COMMODORE 64
EVER HAD A LOADING PROBLEM?
Then send off lor WIZARD'S TAPE HEAD ALIGNMENT KIT - No one should Be without
on*
The most common cause of loading failure Is bad alignment of you' tape Meads This Ml
allows you to Ml up the tape heads of your cassette unit fc the best possible loading
conditions, in many cases this will make a remarMible difference in loading reliability.
Our kit comprlaa* Of:
(1) A precisron recorded cassette containing asophisticated test program (2) A special
adiustment screwdriver (3) A direction inrJicetot (4) A turning meter (5) A detailed
msiruction booklet with diagrams (6) A Loading Doctor - lo help you diagnose any
loading problems All of this for only £6.95"'
COPY KING - PLUS
* Revolutionary new copier for FAST LOADING programs • FREE this month a suite of
additional bach up routines "Striped loaders. Picture loaders, etc .handled with ease
• Back up copies are made on blank TAPES at fast speed (taster than disc') - VERY
reliable loading, unlike some competing unities we could nanlton! • Easy lo use • No
second cassette unit required *Great value at £7.96
HALF PRICE SPECIAL THIS MONTH!!!
Copycat and Lightning Load together for only £5 95. Usually £5 95 each.
COPYCAT - Our highly popular tape to tape back-up copier for Commodore/ standard
rate loading systems • Wizard sound effects Cassette magic sense * Thousands sold
LIGHTNING LOAD II - Converts almost aM your slow loading games/ programs into
SUPERFAST TURBO loading versions on tape • The tedious wait for loading is over
when you buy this excellent program
COMMODORE PLUS-4/C16
THE MIRROR - Superb tape 10 tape Back up copier catering for the majority of Plus-4/
CI6games BacksupbothstandardandFASTloadingsoftware Excellent value -£7 93
TAPE HEAD ALIGNMENT KIT - Description the seme as Commodore 64 version (see
above). Highly popular utility - £6 95
MERLIN ASSEMBLER - 100% machine code assembler for the Plus-4/C16. Very fast
assembly ol source code. Easy entry/editing of code via the full screen editor Full error
message pinpointing the errors Full load/save and printer facilities Variable names,
labels, hex/decimal - Many other facilities too numerous to mention H, fl hl y recom-
mended - A truly superb assembler Comes with instruction booklet and FREE booklet
ol machine code routines. Cassette £895 Disc £13 95
RAPID dispatch of orders
U K postage is included m the price Europeans please ADD 50p Outside Europe AOD
£1.00 Overseas orders welcome All payments must oe in pounds sterling Cheques'
POsto:
WIZARD SOFTWARE (Dept. K)
59 THE MARLES, EXMOUTH,
DEVON EX8 4NE
EXTENSION 64
* SUPERB INTERRUPT DRIVEN SPRITE CONTROL
* UP TO 64 SPRITES ON SCREEN SIMULTANEOUSLY
* AUTOMATIC MAZE RUNNING FEATURE
* AUTOMATIC ANIMATION
* AUTOMATIC JOYSTICK/KEYBOARD SPRITE CONTROL
* MODE SELECTION WITH A SINGLE COMMAND
* PRINT DIRECTED TO HIRES SCREEN IN BIT MAP MODES
* PLOT, DRAW, CIRCLE, BOX GRAPHICS COMMANDS
* EASILY IMPLEMENTED SPLIT SCREENS AND SCROLLING
* INTERRUPT DRIVEN SOUNDS, WITH OUEUEING
* RENUMBER, AUTO, DELETE, RESTORE LINE NUMBER elc.
* BLOCK SAVE/LOAD, DlSK/TLOAD COMMANDS
* HEX & BINARY, BIT TEST/SET/RESET. DEEK/DOKE
* IMPROVED ERROR HANDLING, ON ERROR GOTO/GOSUB elc.
* IF . . . THEN . . . ELSE. WHILE . . . WEND, REPEAT . . . UNTIL
* PROC, DEFPROC, ENDPROC FOR BETTER STRUCTURE
EXTENSION 64 completely eliminates the need lor all those unintelligi-
ble PEEKs and POKEs and provides easy control of ALL the C64's
features. The carefully designed and very powerful new commands
make extensive use of the C64's interrupts to do a lot of the work auto-
matically, "behind the scenes". For example, if you top up the sound
queue you can play a three-part tune in strict tempo while you list and edit
your program.
EXTENSION 64 is available on cassette, disk or cartridge complete with
manual and six demonstration programs at the special introductory price
of:-
Cassette E7.95. all inclusive
Disk £9.40, all inclusive
Cartridge E14.95,allinclusive
Sond cheque or PO or phone Access/Visa details to:
KNIGHT SOFTWARE (Dept YC)
24 Badger Lane, Ingleby Barwick, Stockton-on-Tees TS17QRN
Telephone (0642) 762540
Qz. commodore
J~\ /" "\ /"T"\ Thl» month th«
\ //S ( C\ 1 thebtowf) Th
This month there's good news... and there's bad news! The bad news
ca Increase (but we've Increased our discount to soften
he good news Is our super summer price offer on all VI ia
products... lowest ever SuperBase prices... and more great 138 book-.'
■ Commodore 128D computer £539
■ 128D plus 19O0M monitor £639 H
■ 128D business system £9G9 ■
(1280 • 1900M • MPS 1000 » Mlcroclerk)
■ Commodore 1571 disk dr-vo £259 II
! Commodore 128 computer £249 M
1901C monitor 40/80 colour £279 H
1900M monitor 40/80 mono £139 n
RS232 ot Parallel Interlaces £29 N
128'IEEE • Parallel Interface £79
t year guarantee on at Commodoie products. Puces subject lo avaeabillty. VAT Included
Pie— add 15 toi 3 -day delivery oi £10 lor Oa tapost overnight InWrlacos post free
VIZAWRI : A VtMWrlte Classic 128 Is a much enhanced successor lo the
besl-seakng VaaWtflo 64. which THE TIMES toatured in Ihree
articles, calling It 'a creative writer's dream 1 VI* aWrtte Classic
Is certainly the best wordprocossor we've yol soon on any
computer, ever' Written specialy tor the 128, VlzaWrlte Classic
makes mawnum use ol the speed, memory and 60-cohimn
•S* display, showing your document exactly as It will be printed .
with a 30.000 word disk d-eiionaiy. massive 5SK lent area, proportional printer support
plus built-in NLQ fontt for CBM/Epson type pnnters. easy-to-uso 'pull-down* menus,
full function calculator, "newspaper style' columns, man merge and much, much more!
FANTASTIC SUMMER SAVINGS ON ALL VIZA PRODUCTSl
1 ■ VliaWrtte -Classic' 128 a»*1
£76 « BVIiaStar 128
£96..
1 ■ ViiaWrlte 84 ■Professional' }>«f
£49 9i ■ VliaStar 64 XLB
£76™
| ■VUaWrlleM (cartridge) a—*
£69 « ■ VlzaStar 64 Xl4
r»«
£66 m
Transform your Commodore 64 into a lull
fealurod professional database system,
with up to 1000 characters per record on
up lo lour screens and up to 128 Hems
per record, definable as hey. text, numeric,
result or dale. . m flies ol up to 16 rnllton
characters' SuperBase 64 even has calculator and calendar functions, easy Input
from word processor or dala Mos. both menu-driven and program control, sorting
and searching, fully definable report and screen formats-. Supertiase64 Is essential
il you want the most from your 641 Suppled on 1541 d>3h with excellent tutorial
and reference manual, phis audio learning tape
BEST EVER SUPERBASE PRICES!
■ SuperBase 64 £54 « ■ SuperBase: The Book £11 95
■ SuperBase Plua 4 >*• £54 »i ■ SuperBase CBM 8096 jj-— r £115»
■ SuperBase 128 jwt £64 si ■ SuperBase CBM TOO £115.00
Tricks & Tips for the 128
A 300-page Ireaeure chesl of easy-to-use
practical techniques for your C126.~ pached
with ready -to -enter BASIC and Assembler
listings, carefully explained, and tut ol useful
Ideas for you to try' Youi see how lo run
64 programs at 128 speed, how lo work wilh
graphics and multiple screens You'll see
how to all or the character sat, print or display
banner titles, add extra function keys,
protect and restore your programs, rodofmo
the keyboard, add now Basic commands
and much more... all lor only £12.951
Are you a two-
finger typist?
Then why not lot
SuperType help
I you learn to touch-
type Ihe fasl and easy way ., with your
computer as the leacher' All Ihe farrsty can
learn this useful skill, at Iheir own pace
and profit from the very latest computer-
r. di'd training and feedback. lednOJUMl
ONTAPE 1>«* £16.9^
ON DISK 2>s? £21.95!
Presenting the Amiga
If you want lo know why there's such a
fuss about the Amiga, this booh tells all!
A complete run-down on this amazing
machine, It reveals the secrets of Amiga
Basic. Amiga DOS. Intuition workbench,
plus mice. Icons, speech, sound... C9.9SI
The Anatomy of the 1571
Exploit the tuH potential ol your disk drive
with this 300 page In-depth guide! Fullest
coverage of sequential, relative and direct
access lillng, CP*M. DOS routines, circuitry
and a fully annotated ROM listing... £12.95!
The Anatomy of the 128
With nearly 500 In formation -packed pages,
this Is THE book to get about your new
Commodore 128... the Insider's guide
to Ihe secrela of this powerful computer!
Fully documented ROM listings ot both Basic
and the Kernel... memory maps. loro-pago
Hongs ... ports, interrupts, bool routines...
SID, VIC. Z80 & 80-cohrmn chips memory
management., assembly code enlarging
the screen ... 640 ■ 200 graphics ... el this
and much more tor onty £12.95*
I 126 Basic compiler
49.96 £44.95
■ Super C 128
-6*96
SI •)•>
■ PetSpeed 128 compiler
44.95
■ MiroClerk 128
99.99
■ Commodore Script 128
49.99
■ Super Script 128
69.95
■ Superscript 64
■6996
49.95
■ SuperBase Starter 64
4je-M
29.95
■ Super Pascal 64
■49 96
44.95
■ Basic 64 compiler
49 96
44.95
■ Simon's Basic 64 (cad)
•50-Oe £35.00
■ PotSpeod 64 compiler
M M
34.95
■ 0-tord Pascal 64
-49-96
42.95
■ Oxford Pascal (tape)
■ee96
19.95
■ JetPack 84 compiler
-894*
29.95
■ JetPack (tape)
14.95
■ A-,sombHWmon,lor 64
1!*
16.95
■ Power Plan 84
-4*99
36.95
■ Prachcalc II
■6996
49.95
■ Master 64
■69 O0
39.00
WANT IT TOMORROW??? CALL US TODAY!!! ON 01-546-7256
Prices Include VAT and POSTAGE
and are correct on going to press.
Order by post or phone, using
cheque, Access, BardayVlsa or
postal order. Despatch la by same
day 1st CLASS post Product dala
available on request, or phone lor
advice If In doubt. |REF A40j
LAKESIDE HOUSE, KINGSTON HILL. SURREY, KT2 7QT. TEL 01-S46-72S6
Submissions
YOUR BEST INDEPENDENT COMMODORE MAGAZINE
[SO YOU OWN A COMMOUOKE?
SO YOU'VE WRITTEN SO
SO WHY HA
TO US? |
YOUR COMMODORE IS ALWAYS ON
the lookout for new material for publica-
tion and we know that there are
thousands of intelligent, literate,
innovative and creative Commodore
owners out there, so why don't we get
together?
If you have written a program, be it a
game or a utility, that you think you
should share with other Commodore
owners, then why not submit it to us for
publication. Don't forget we pay very well
for any articles that we publish.
All submissions should be well docu-"
mented and where possible include a line
by line breakdown of the program
together with a list of any variables used. A
copy of the program should be included
on either tape or disk.
All submissions should be sent to the
address below. If it is not chosen for
publications then it will be returned to
you.
You may not have written any software
yourself, but you may have very firm
opinions about the world of Commodore
and all its attendant industries and
products. If you do. then put your views
or questions on paper and post them to us
again at the address below - you might
even get paid for airing your views!
All submissions should be sent to:
The Editor
Your Commodore
r
Office Use Only
Surname: .
Firstnames:
I
| Address:
Postcode: Telephone Number:
Times to contact you:
Program Name:
| Computer/memory size:
Extras required (disk etc):
Have you sent the program to another magazine? Yes/No
I
PLEASE- COMPLETE IN BLOCK CAPITALS
D.ite
received: Dale ack - senl:
Date checked: Checked by:
I Rating:
Argus Specialist Publications
No 1 Golden Square
London W1R 3AB
I Comments:
I
I
I Reply sent: received:
J Date printed: Date returned:
I
| Fee:
j Date Fee sent:
i
The amazing, combined text and graphics adventure generator enables
you to producefast, compact adventuregames with the minimum of effort and
the maximum of creativity Stunning graphics can be created quickly and easily
with the powerful picture generator that has many features including:- dot,
cirde, elastic line, ellipse, fast fill, shading, step by step review, easy editing and
the ability to merge pictures.
The comprehensive, intelligent command interpreter can handle complex
sentences and multiple input commands. There is also an extensive text com-
pression facility that allows you to produce far more detailed and numerous
location descriptions. Plus a full function editor, automatic word formatting, a
logical command interpreter and an abbreviated input acceptance facility.
So unleash the power of your imagination now with The Graphic
Adventure Creator, for your Commodore 64 computer Available from all leading
retailers or direct from Incentive on 0734 591678.
INCENTIVE SOFTWARE LTD. 54 London Street Reading RG1 4SQ.
' Please rush me, for my Commodore 64
I Computer THE GRAPHIC ADVENTURE
i CREATOR
□ Cassette £22.95
I □ Disc £27.95
I lendoseCheque/POfor£_
or please debit my Credit Card
| No
I Name
j Address
I
I
I
George Duval has managed
to get hold of some Amiga
games software. Read on to
find out what's available.
IT IS A REAL SHAME THAT COMMOD-
ore, in alt its wisdom, has decided that
the Amiga should be a business
machine. When you think about it, with
amazing graphics, 40% colours, stereo
sound and a 68000 processor, there
cannot be a machine more suited to
high quality games.
Fortunately, many of the large
American software houses agree with
me, and slowly but surely some
excellent products are appearing. Elect-
ronic Arts was the first company to
produce games for the Amiga, not
surprisingly perhaps -Commodore gave
development machines to Electronic
Arts more than six months before
anyone else!
Most 64 owners will recognise the
first three games EA released -Archon,
One-on-One, and Seven Cities Of Cold
as they are all conversions from C64
originals. None of these products take
full advantage of the Amiga's capabili-
ties, but each has its own touches that
make it just that little bit better than
anything available for a normal home
micro. But then the Amiga is no 'normal
home micro'!
Seven Cities of Cold was the first
complete game for the Amiga, however
it is also the least good. It is ridiculously
similar to the 64 version, even down to
the chunky horizontal scrolling; which
is more reminiscent of the Vic 20 than a
£1500 Amiga!
In The Basket
Things improve greatly, however, with
One-on-One. Although it too is a
straight conversion from a well known
64 game, the graphics are good and the
sound is absolutely mindblowing! In
case you don't know the game, it's a
basketball simulation, except that you
don't play a whole team, just one player
- Dr J, or Larry Bird (both of whom I am
assured are well known basketball
stars!). You must try and out-fox your
opponent and score as many points as
possible in the time allotted.
Graphically One-on-One is good,
though by no means special. By using
vertical sprites, the programmers have
taken the easy way out. Had they used
the much vaunted 'Blitter chip' the end
result would have been truly outstand-
ing. The sound however is a different
story. Using sound-sampling EA has
managed to use sounds from a real
game, and everything from the ball's
bounce to the popcorn seller is
fabulous.
A WyndWSIker
Adventuring
Perhaps the best known of EA's conver-
sions is Archon. As a 64 game I rated it
very highly, since it managed to
combine the strategy of chess together
with a more exciting 'arcade' section.
On the Amiga it is the same game only
belter. The graphics are beautifully
defined, the sound is fun, and the game-
play is gripping - what more could you
ask for?
Out In The Cold
Arcticfox! If the first three games are
good conversions, then Articfox is what
the Amiga is all about. Programmed by
Dynamix, it must be the best game on
any personal computer. To describe the
Flight Simuliloi ^
game in full would take hours, but
briefly it is true 3-D (as opposed to sprite
3-D) Battlezone type game, in which you
control a 37 ton missile launching
lOOmph tank! This is the only game I
have seen that shows what can be done
on the Amiga. It has amazing graphics,
great sound, and is immensely playable.
miiGA
"PLAYTIME
On the packaging of Arcticfox is a
line which I think sums up what this
game is all about. It reads "Where do
you sleep when you own a 37-ton tank?
Anywhere you want to"!
Arcticfox's mission is set in 2005, and
you must infiltrate the Alien's force field,
and blow up the main fort, thereby
defeating the aliens. Against you are a
wide variety of stationary as well as
mobile weapons which will do their
utmost to make sure you get massacred
well before you reach the main fort.
What makes Arcticfox so good is the
attention to detail. The instrument panel
alone is amazing, with each of the
weapons you have being activated by
moving an on-screen hand. Radar too
has been implemented, and the mini
screen used for displaying the guided
missiles is incredible.
Reviewing this game poses one
difficulty, what superlatives are there
left to use? Screen shots cannot do this
game justice, and even the fact that it is
quite slow doesn't alter the fact that this
game is great.
In On The Acl
Although EA is the biggest producer of
Amiga software, other American
software houses saw this computer as
their chance to be 'there at the begin-
ning'. Activision managed to release
three titles very quickly, yet retained a
very high standard.
A Borrowed Time
As with most of EA's games, Activi-
sion has converted three best selling
Commodore 64 titles; Hacker,
Borrowed Time, and Mindshadow.
In 1985, Hacker was one of Activi-
sion's best selling games. On the Amiga,
it has been upgraded graphically, but
the gameplay remains the same. You
have broken into a computer and must
travel around the world collecting
sections of a secret document. What
makes this game so good on the Amiga is
that the small 'monitor' within the game,
which is used to display the locations,
shows some incredibly well defined
pictures of all the major cities around
the world (Tower bridge is especially
good!).
Mindshadow and Borrowed Time
are both graphical adventures, and
although they have no sound, the
graphics are of a very high standard. In
Borrowed Time you play a 1930s
detective called Sam Harlowe, and it is
your job to crack a complicated case,
and avoid being murdered - not an easy
task!
Mindshadow is a more impressive
adventure, in which you play a victim of
amnesia who must find out who and
where he is. Although neither of these
games use the full potential of the
Amiga, they were created fast, and as
such bode well for what Activision will
do in the future.
Although England is well behind on
Amiga development, we do have one
game - Brataccus from Liverpool's
Psygnosis. Originally a QL game, more
recently it has been released for the
Atari 520ST, Mac and Amiga. It is an odd
game, in which you must wander
around a spacecraft, doing battle using
your sword and refusing offers of drinks
at the bar! Unfortunately Brataccus is
another example of a game that does not
take advantage of ANY of the Amiga's
facilities, even down to the reduced
screen size and limited colour.
^ Archon
tucker ^
What Next?
What the future holds for Amiga games
is uncertain, but I have seen sneak pre-
views of two games which should be
released towards the end of 1986. Wynd
Walker will be Commodore's first, and
quite possibly only, game for the Amiga.
It is an arcade adventure with you
playing the hero, a wizard. As yet Wynd
Walker has no gameplay, but enormous
potential.
The Amiga is most suited to 3-D
simulations, and I have seen an
unfinished flight simulator that, when it
is released, will have airline pilots
aghast! Programmed by the team
responsible for the now legendary Flight
Simulator II for the IBM PC, it is fast, has
wonderful solid objects and great
potential. Unfortunately in the version I
have, you can also fly UNDER the
runway, and THROUGH the Pyramids!
As yet, no one has written a game
purely for the Amiga, using all the
potential of this incredible machine.
However I know for a fact that EA is
writing the arcade class Marble
Madness, which should be out within
two to three months. All eyes are on it
and another EA title Return To Atlantis -
the first game to make use of the Blitter -
to show what really can be done.
Get in a spin with
W Bremner's insight
into your 1541 disk
drive.
IN ORDER TO INCREASE
your understanding of the
1541 it is necessary to
comprehend how the user
communicates with the 1541.
This article should give you a
better grasp ot this subject.
The program listed at the
end will be used throughout
the series to investigate the
drive, and allows the user to
store and retrieve programs
and data within the drive's
own memory. The program is
rather slow, as it is written in
Basic (with some machine
code), but is fully docu-
mented, and serves to teach
as well as being a useful tool.
Readers interested in
acquiring more complex
utilities should get in touch
with Evesham Micros on 0386
41989 or obtain a copy of
Drivemon by Slarpoinl
Software.
The Serial Bus
The 1541 Disk Drive is one of
the many peripherals
available for the Commodore
64 which use the serial bus to
send and receive data to or
from the host computer. The
bus is a daisy chain
arrangement allowing up to
five peripheral devices to be
connected together, for
example, one printer and two
disk drives. Since several
devices may be connected at
the same time, there must be
a way of distinguishing one
device from another. This is
the purpose of the device
number, and the 64 assigns
numbers zero to 31 to the
serial bus, eight to 11 covering
up to four drives.
The 64, known as the bus
controller, can command a
device to receive data on the
bus (LISTEN) or transmit data
(TALK). Only one device may
talk on the bus at a time, but
many devices may listen to
one talker, and the 64 is the
only device on the bus that
may act as controller. When a
device is addressed, the 64
sends an attention signal
(ATN) over the bus, alerting
all connected devices that
they should be aware that
PROGRAMMING
THE
1541
data communication is being
established with one of them.
The 64 then sends the number
of the desired device, and if
that device is present, it will
respond to the ATN,
otherwise a timeout error will
occur, and the 64 will report a
DEVICE NOT PRESENT,
The 64 then indicates to
the selected device whether it
should be a listener, and
receive data from the bus. or
be a talker, and send data. A
second address may also be
sent to perform any further
set up operations. To ensure
the accuracy of the following
data transmission, the data is
sent over the bus one
character at a time. Onty
when the receiver acknow-
ledges the accurate receipt of
the data may the sender
transmit, another character.
This fairly lengthy procedure
is known as handshaking, and
is necessary due to the 64 and
1541 not being centrally
synchronised. When the data
transmission is complete, the
device is de-addressed; if the
device was sending data, the
64 sends an UNTALK
command; if the device was
receiving data, the 64 sends
an UNLISTEN command. The
bus is then free to handle the
next transmission.
Controlling the 1541
Various housekeeping duties
such as renaming a file can be
executed by sending special
commands to the 1541. In
order for us to manipulate the
drive's memory, the Disk
Operating System (DOS)
designers kindly included
some extra commands, some
vital, some seemingly super-
fluous. The three most
important of these allow us to
store, retrieve and execute
machine code routines and
data within the 1541 RAM.
They are similar to the POKE,
PEEK and SYS functions in
Commodore Basic, and work
in much the same way. These
special commands along with
their relevant parameters are
sent to the drive along the
command channel (15), and
are covered in depth in the
1541 user manual, so I will
only briefly review their
syntax:
MEMORY-READ; fetches up
to 255 bytes from anywhere in
the drive's memory, and
returns them along the
command channel.
Formal: "M R ";CHR$(LO
Addr.);CHR$(HI Addr.);CHR
$(No.bytes)-optional.
MEMORY-WRITE: stores up
to 34 bytes at a time in RAM.
Formal: "M-W":CHR$(LO);
CHR$(HI);CHR$(No.bytes);
CHRS(data).
MEMORY-EXECUTE: exe-
cutes a ROM or RAM routine
within the drive's memory.
Formal: "M-£";CHR$(LO):
CHR$(HI).
Drive RAM Usage
$000 - Zero Page
$0100 — Processor Stack area
$0200 — Serial Bus Input/
Output buffers
$0300 — BuffertfO
$0400 — Bufferfll
$0500 — Buffer #2
$0600 — Buffer #3
$0700 — Buffer tt 4-Used by
DOS for BAM
The following program
demonstrates the use of all
the "MEMORY" commands
in one sequence. A small
routine is poked into Buffer
HO at $0300, which, once
executed, stores a further
byte in location 0400. Note
that the m/c routine ends
with an RTS (Return To
Subroutine).
100 OPEN 2,8,15
110 PRINTW2, "M-W",CHR$
(00);CHR$(03);CHR$(6);CHR
$(169);CHR$(255>; CHR$ (141)
;CHR$(00)CHR$
(04);CHR$(96)
120 PRINT #2, •'M-E";CHR$
|00);CHR$(03)
130 PRINT N 2, "M-R";CHR$
(00);CHR$(04);CHR$(01)
140GETtf2,B$:PRINT B$
The same routine when
written in machine code is
considerably more involved,
but as long as the rules are
strictly followed, in the
correct sequence, equal
results can be achieved, and
often a lot faster. Luckily,
most of the hard work has
been done for us, and we only
need to call the correct
Kernal routines:
Serial Bus
Routines
KERNAL
LISTEN $FFB1 — Command a
device on the serial bus to
LISTEN.
SECOND $FF93 — Send
secondary address after
LISTEN.
CIOUT SFFA8 — Output a
byte to the serial bus.
UNLSN SFFAE — Command
all devices on the serial bus to
UNLISTEN.
TALK $FFB4 — Command a
device on the serial bus to
TALK.
TKSA $FF96 — Send
secondary address after
TALK.
ACPTR SFFA5 — Input a byte
from the serial bus.
UNTLK $FFAB — Command
all devices on the serial bus to
UNTALK.
Com
Rout
plimentary
ines
Bus
IONIT $FF84 — Initialise
Input/Output
READST $FFB7 - Read status
word
To transmit data to a device,
the accumulator (acc.) is
loaded with the device
number, and the LISTEN
routine is called. The
secondary address (channel
number) is then stored in the
acc. bits five and six are set
(result = s.a. + $60) and the
routine SECOND is called.
Data characters stored in the
acc. are then sent over the bus
using CIOUT, and the whole
sequence is terminated with
the UNLSN routine, which
sends an EOI (End Or
Identify).
Getting a device to send
data over the bus is just as
easy. The KERN AL talk
routines are used in place of
their corresponding LISTEN
calls, and data is input using
ACPTR. Bit six of the status
flag (updated after a READST
call) can be checked after
each ACPTR call to test for an
EOI from the drive.
To open a file or direct-
access buffer, bits five, six,
seven and eight of the
secondary address value are
set (result = s.a. + $FO). Bits six,
seven and eight are set (result
= s.a. + $EO) to close the
file/buffer.
Armed with this inform-
ation, we can now write our
machine code routine. Note
that because the LISTEN/
SECOND sequence is used
three limes I have set it aside
as a complete routine call. I n a
program full of disk access,
this is often a valuable space
saving technique.
This covers all the
"Memory" commands and
their various peculiarities. As
reference only, I have
included details of those less
well known commands I
mentioned earlier. So far I
ha»
these commands implement-
ed in elaborate disk
protection schemes; they
lend to suggest exact usage
because of their limiting
qualities. As in the case of ihe
memory commands, ihey are
executed by sending ihe
funciion and its parameters
along the command channel.
BLOCK-EXECUTE: Reads a
specific track and sector into a
previously opened buffer and
executes ihe machine code
routine at the start of that
buffer.
Formal: "B-E";CHR$(chan-
nel);CHR$(drive no.) ;CHR$
(track);CHR$(sector)
E.g. PRINT/M5, "B-E";2;0;18;
10
USER-JUMP :Apart from the
two "Ux" commands used to
read (U1/UA) and write
(U2/UB) specific sectors to
and from the diskette, and ihe
two "Ux" commands used lo
set the drive bus speed
(U9/UI) and reset the drive
(U10/UJ), there are six "user-
jump" functions which, when
called, execute code at the
beginning of buffer tt 2
($0500).
U3(UC) — jump to $0500
U4(UD) — jump to $0503
U5(UE) - jump to $0506
U6(UF) — jump to $0509
U7(UC) — jump lo $050C
U8{UH) - jump to $050F
The nature of these
commands would suggest a
"jump-table" set up to
perform varied tasks within
the 154fs memory, easily
called up from an external
Basic or machine code
routine. For example, a
routine which reads section
18,0 into buffer#1 and sends it
at high speed along the bus
could possibly be called by:
PRINT ft15,"UC";CHR$(18);
CHR$(0)
Although, so far I have
referred only to the 64 and
1541, the above kernal calls
and communcation protocols
are analogous to both the Vic-
20 with 1540 Disc Drive, and
the C128 in 64 mode with
LISTEN
= $FFB1
: TALK
= $FFB4
SECOND
■ $FF93
: TKSA
= $FF96
CIOUT
= $FFA8
: ACPTR
= $FFA5
UNLSN
= $FFAE
: UNTLK
= $FFAB
READST
= $FFB7
: CHROUT
= $FFD2
DEVNUM
= 8
SECADD
= 15
SNDTBL .BYTE "M-W".$00,$03.$06.$A9.$31,$8D.$00,
$04,$60
$8D,$00,$04,$60
SNDEND
GETBL .BYTE "M-E",$00,$03
GETEND
EXTBL .BYTE "M-R",$00,$04,$01
EXEND
JSR LSTNRT
BNE END2
; send listen * second addr.
; finish if error flag set
LDXtfSOO
LOOP1 LDA SNDTBL, X
JSR CIOUT
INX
CPX ftSNDEND-SNDTBL ; is it done?
BNE LOOP1
; get "Memory-Write" string
; output byte
JSR UNLSN
and UNLISTEN
JSR LSTNRT
LDX#$00
LOOP2 LDA EXTBL, X
JSR CIOUT
INX
CPX# EXEND-EXTBL
BNE LOOP2
JSR UNLSN
JSR LSTNRT
LDX«$00
LOOP3 LDA GETBL,X
JSR CIOUT
INX
CPXffGETEND-GETBL
BNE LOOP3
)SR UNLSN
LDAfrDEVNUM
JSR TALK
LDA SECADD + $60
JSR TKSA
JSR ACPTR
PHA
JSR UNTLK
PLA
JSR CHROUT
END2 RTS
LSTNRT LDAWDEVNUM
JSR LISTEN
jSR READST
AND«%10000000
BNE END1
LDAtfSECADD + $60
JSR SECOND
LDA #$00
END1 RTS
; send last character, EOI,
; send "Memory-Execute'
string
; send "Memory-Read"
string
; command drive to talk
; set secondary address
; input byte
; store it
; command disk to stop
talking
retrieve byte
print it
tell disk to listen
; get status
; check bit 7 (Device Not
Present)
; error flag set
; set secondary address (bit
5+6 set)
; clear error flag
Eric Doyle takes another
long hard look inside your
THE 6500 SERIES CENTRAL PROCESSOR
may be the heart of a computer but it is
the slave of the operating system. The
OS is either a machine code program or,
more usually, the program contained in
the Basic ROM. This is the language of
convenience devised by Microsoft
which the computer uses when it is first
powered up.
For Convenience
A language of convenience has nothing
to do with the scrawlings on a lavatory
wall, it is merely a compromise language
used when communications cannot be
conducted in the speaker's mother
tongue. Basic is such a language, a
computer speaks in pure binary but we
use English so a stylised form of English
has been devised to ease the job of prog-
ramming. Similarly, a computer does not
use variables in its operation, it uses
definite memory locations.
The use of variables in Basic is so
essential that I used to take it for granted
that my old Vic 20 knew what I was
talking about when I referred to them. It
wasn't long before I started to wonder
how it responded to and stored all the
variable names I came up with.
One possible answer was that every
conceivable variable name had a space
allocated by the ROM fromthe moment
I turned the computer on. Of course this
is impossible in a mere 3.5K of memory.
To allocate sufficient space to 26 strings
(A$-X$) would need a reserved space of
6.5K and when arrays are taken into
account there wouldn't be enough
room in a C128!
The only answer is that the computer
adds to the list of variables as each is
encountered when a program runs. This
still means that space has to be allotted
in RAM but it also means that there is a
limit to the number of variables which
can be defined. It doesn't take much
effort to verify this by trying to dimen-
sion a large array like DIM A$(256,256).
This list is stored in the same area of
memory as the Basic program and ef-
fectively reduces the space which is
available. The more variables you use,
the shorter your program must be.
This means that the computer needs
to keep track of where the variable
space is to be found. How many types of
variable are there? Integer, string and
floating point make three but there are
also arrays and defined functions.
How do we find where these are
stored? Memory locations 45 to 52 hold
the secret (C128 owners in C128 mode
should add two to all the following
values):
Loci Loc2 Description
45 — 46 Start of variables
47 — 48 Start of arrays
49 — 50 End of arrays
51 — 52 String storage
55 — 56 End of string storage (end of
Basic memory)
The locations pointed to by the con-
tents of this tiny block of memory can be
found by multiplying the contents of
Loc2 and 256 and adding the contents of
Loci,
Down to Work
Time to experiment. Enter the following
short program and run it:
10 A%=257
We must find the start and end of
variable storage so type in the following:
PRINT 256'PEEK(45)+PEEK(46),256*PEEK
(46>-1)
The values obtained will vary dep-
ending on the model of your Com-
modore but you will find the difference
between the two values to be seven
bytes. This is the amount of space
allotted to all integer variables.
Now let's see what's in these seven
bytes. Normally we'd use a loop to PEEK
each location in turn but this means
setting up a new variable and possibly
affecting these memory pointers.
Luckily, when a variable is set up another
pointer pair indicates where the variable
is stored. These are locations 71 and 72
(73, 74 in 128 mode). Add the following
lines to your program.
10 REM BANK1 IN C128 MODE
20 POKE 828,PEEK(71):REM POKE 2816,
PEEK(73) IN C128
30 POKE 829, PEEK(72):REM POKE 2817,
PEEK<74) IN C128
40 LO=PEEK<828)*-PEEK(829)*256:REM
2816,2817 IN C128
50 FOR X=0 TO 6:PRINT PEEK (LO+X);:
NEXTX
Running the program should give
these values: 193,128,1,1,0,0,0.
You're probably wondering what all
this means. Let's examine the first two
figures. What happens if we subtract 128
from both numbers? We get 65 and 0.
Ah! 65 is the ASCII code for the letter A,
our variable's name. What if we'd called
it AA%? Could it be that we'd have
found 193 in the second byte? Try it and
see. Change your program line 10
variable to AA%.
Eureka! It works. So we now know
that the first two bytes of a stored integer
variable is the ASCI I code of the first two
characters of its name plus 128.
The next two numbers reveal their
identity if we treat them in a similar way
as we treated the variable pointers
earlier. This time we must multiply the
first number by 256 and add the second
number. Put your computer down, you
can do this one in your head. Ok
Einstein, the answer is 257. Well, well,
this is the value of the variable. Clever
isn't it?
What do the zeros mean? Precisely
that, nothing whatsoever! They're just
padding and you'll see why later.
Complex Integers
Let's try a larger value for AA%, like
32768. See, your computer can't take it.
Now try 32767. It likes that, why?
To answer that we've got to go
binary. Each byte consists of eight
switches which can either be off or on
and each indicates a different number.
From left to right these are 128. 64, 32, 16,
eight, four, two, one. The number four
would be represented by the four switch
being turned on and all the others off,
five would need switch one and four on
and 255 would mean all switches were
on.
We have found that the stored
number is held in two bytes. In this case
the 16 switches add eight higher levels to
the existing group; 32768, 16384, 6192,
2048, 1024, 512, 256.
Adding all 16 numbers together we
get a maximum value of 65535. Sub-
tracting the highest permissable integer,
32767, from this gives 32768, the highest
switch value. If this switch is not used for
number storage what purpose does it
have?
If the switch is on, the integer is a
negative value and if it is off , the number
is positive.
The proof of the pudding etc. Give
AA% a value of -257. The resulting values
are 254 and 255. This gives 65279. We
know the number is negative so 32768
can be subtracted to give the answer
32511. If 32768 is subtracted again the
result is -257!
Programming
This is a mathematical solution. What
actually happens is that a negative num-
ber is represented in a form known as
two's complement.
To get a two's complement number
we need to look at the binary repre-
sentation of the positive value 257. An
on switch is represented by one and off
is shown as zero. From our previous
example we can see that 257 consists of
256*1, so we turn on those switches
only:
0000000100000001
Next we turn all on switches off and
all off switches on:
1111111011111110
The final act is to turn the last switch
back on:
1111111011111111
Evaluating this gives the value 65279.
Now try for yourself to split the 16
switches into two groups of eight and
see what values you get using the 128, 64,
32, 16, eight, four, two, one series in both
cases. You should get 254 and 255.
What would happen if the last switch
was on as in this case?
Number 0010011100000100
Complement 1101100011111011
+ 1
We can't turn the last switch on to
complete our two's complement so we
turn it off and try the next switch. It's also
in the on position. Turn it off and move
along the line until you find a switch in
the off position, remembering to turn
off any switches you have to pass.
In the example the third switch is off
so we need search no further:
Two's comp. 1101100011111100
To convert the number back to a
'real' value, reverse the process.
0010011100000011
+ 1
001001110000010
=00100111 00000100
« 39*256 + 4
= 9988
Don't forget the minus: -9988
Play with the program giving AA%
different identities and then trying work
out from the dated PEEKed the number
you first thought of.
Alternatively, if all this binary is too
much for you, work out the value stored
and subtract 65536 from the result to
give the negative value.
Highly Strung
Flushed with success, we'll now look at
strings. Change line 10 to A$="FIND IT"
and run the program again.
This time the first three values are 65,
128, seven. The next two numbers will
vary from machine to machine but the
last two will both be zeros. Ignore the
zeros, they're more padding. This time
the first letter of the variable name is
directly represented by its ASCII value
but the second letter still has 128 added.
The next value is interesting count the
number of letters in the string. Ah so!
Treat the fourth and fifth figures as a
two byte number and use this equation:
PRINT CHR$(PEEK(fourth)+PEEK(fifth)
"256)
Substitute the values from your
program for the words 'fourth' and
•fifth'.
It gives an "F". Enter the line again but
put 1+ between the first bracket and the
command PEEK. I think we've found it!
Note that the computer reads the
value from the program line. Why do
locations 51 and 52 point to 40960?
Replace line 10 with this:
10 A$="FIND IT":B$= "YOURSELF":C$
A$+B$
Run the program and, in the words of
the variable, find it yourself.
Functional Storage
Straight in the deep end with you:
10 DEF FN AA(A)=PEEK(71|+256'PEEK<72>
20 LOFN AA(0)-7
Erase lines 30 and 40 and run the
program.
This time the first character is
ASCII+128 and the second is straight
ASCII. The third number plus the fourth
multiplied by 256 gives the memory
location which follows DEF FN AA(A)=in
your program. PEEK it to make sure.
In the definition we created a
variable A as well as a function variable
AA and the location of this variable is
given by the next two bytes. As usual
ignore the sixth number which is
another zero.
Pause for a while to appreciate the
cleverness of the program which uses
the function definition to find the
location of variable A and then back-
tracks seven places to get to the function
entry. PRINT LO+7 should give the same
value as the fifth figure plus the sixth
figure multiplied by 256.
In my next article I will be raising
arrays and immersing you in floating
point variables.
Format of Integer Variables
Byte Contents
1 ASCII value of first character of
name ♦ 128
2 ASCII value of second character of
name + 128
High byte of integer value
Low byte of integer value
Not used
Not used
Not used
r.
at of String Variables
Byte Contents
1 ASCII value of first character of
name
2 ASCII value of second character of
name + 128
3 Number of characters in string
4 Low byte of string storage address
5 High byte of string storage address
6 Not used
7 Not used
String variables can be up to 256 charae-
mat of defined functions
Byte Contents
1 ASCII value of first character of
name + 128
2 ASCII value of second character of
name
3 Low byte of pointer to function's
location
4 High byte of pointer to function's
location
5 Low byte of pointer to function's
internal variable
6 High byte of pointer function's
internal variable
7 Note u
unlimited
59
Communications
Ce^on
)anda.
S S Ss .his pas. W^JSl as
l^.-;Pow 0 n.o^enews--.ead
I on!
Prestel
harsh, but I have man aged ^ ^
Celebmy Cha.l.ne m mpull ng
,h ! ^ ,ha, P « 2 is l«** in « in '°
guessed it- a keywo , d use
?„,„ nn Commodore,
info on «- keyword.
•Commodore as my K Y w be
,US ' Td and how much it's going
; m CThe Pu".er '" any.hing, is no,
Another .merest ng and
File Box. This is a me' W o.
retrieving files v., . he Preste^ „ ,
To use this (eatu-e. a P loaded
software ™* " S box manager. The
wh ich is ,h .f. .^'..experimental stages,
| scheme is still in us exper ,i y
| on l v available (or . he
| file Box works WW ' „ have F ,le
'„ hat us Commodore ^^ avajl
Box volwarelw^ about File
The very in ' e ' e , s !.'" B J, aud transfer is
Box is that 1200 1 200 baud tr^^
being cons : de : e p re stel operate at
are uploaded wedo ne ^ ,
well...!
■ " publisher of
Bigg-es' O-Arcy. now Put J" ,
Micronet, I«WJ Nel , i, makes
happenings on the
interesting ' eadin «„ anl points are-. D
The iwo important P deve , op new
Micronet is 8 0, "5.l lne emphasis on
services this yea^ 0 ^, and 2, there
more 'serious app'^a ^ ,
s^,*ss^ °— d
important, and already n Sunday
,ime of writing there J d , ne re
supplement, ■tW^tT*.
,/adve.t.s.ng appea^ns do ^
which has question;.
n,iC '°h ^aSmTR doing this?'.
■Should MICROnet , elres hing,
Personally. > '"'"l" na Te complained,
bu. some P eop '* ned M'Net lor micro
adopted this • pM°«gS, a greater
O'Arcy wants to d , nclu ding non-
subscriber *W*MJ»j , hinU attract a
micro Matures would, formuU
ereater audience, win
SorM We'll have » see^ Dungeon
Mea T n\ho"tly be appearing on
(M UD should sho '" y Net .s „wn version
rowTdg^oin^obedisplayedinthe
Pres.el style format.
To^er of various
objective being to makings
lind. All software comP Sotlw a,e Park,
and so on is ^'"^ computing and
Club128.ncorpo« P fc wh
business stuff, while i rf o|her
you 1, fine P"^*^ being made as
fea.ures. The move ss and ,
say i.^ a. o. better -nice one
Radio Amatures CUt, « the ir way-
and more new *f*" r f *£ nk wouldn't
C NET's ^'^ 0 ^ nf F o a but?unde,stand
being considered.
Snippets
- „ ^.it nt room! OK,
Wow , I'm ' u " n ' n n 8 ew °Mul.i Use. Games
here we go: T J~ n £ta-testing. The first
based on a ^Jffi££. More info
„d. The game is Y e° es an d
mud, bu. has » n d , stinc , -them
locations w-'h e.g. , ocal , 0 ns!
areas, each with about « wh ich
£20 will get YOU a_ »arter Pj wold
includes rnap. hinw. iu ^
and 30 hours of P^YtnB Dlive No ..h
SSittSSk* <or more info.
The Big CNET Move! Logo f{
[Micronet
manage. ^e^obert hich
&r.i^^^
B^heiimeyoureadt^Compu-w]'
b Y a ve undergone a J' who are
organisation^, 'toe ° ^ cN[T
no. on Compuneu « structure.
ls o.gan.sed In a dir dedicated to
^ril^uldhrSent situation by
now. . - , P . 0 reanisation
(ro m my ^^^wU^-
BffrtSW Other info next
S^ Jnd^nC contacted on the
Gold/M-crolmk TZjM
One-To-une —
Suitable for virtually ALL computers with BW drives
whether single or double sided. If a single sided drive, then you
will be able to get twice the storage as you can flip these over.
Only £*&&5 exc VAT
<£>9.95 inc VAT per ten-pack)
Specif ication:-
These "bananas are reversible &
double sided double density. This
means that you can get TWICE the
storage space with single sided
drives, as these disks can be flipped
over. They are of course perfectly
suitable for double sided disk drives,
and single density applications.
Grown exclusively by:-
DISKING
FREEPOST
Liphook
Hants. GU30 7BR
Access
ViSA
Tel: (0428) 722563 (24hr Order hotline)
YC7
POST to:- DISKING
FREEPOST Liphook Hants GU30 7 BR
Tel: (0428 722563)
Please rush me boxes of bananas & £9.95
per box (plus P Gf P at 50p a box) inc VAT
Ten boxes or more - POST FREE
Official Government orders welcome
I claim my FREE 4 Go Bananas* badge with
every ten-pack
All orders despatched In 4 hours
Name
Address
tel no:
I enclose cheque payable to DISKING or please
debit my Access /VISA card No:-
If coupon clipped - JUST CALL
Steve Carrie brings
you an
Editor
>ler for your
THIS UTILITY IS INTENDED
for use on a Commodore 128
system operating in 128
mode. The program is fairly
simple as assemblers go, but it
could be useful to someone
who perhaps cannot afford a
more comprehensive package.
Both tape and disk are
supported as well as a
printer.
Before going on to
describe the program in more
detail I will give a brief
overview.
In 128 mode, the
computer maintains two 64K
banks of RAM (RAM 0 and
RAM 1). There are a couple of
common areas in the memory
map to allow programs to
operate correctly between
banks. There are 16
predefined memory con-
figurations. Of these, BANK
12 is used for this program.
This is a combination of RAM
0 from 0400-7FFF hex and the
kernal ROM from B000 hex
upwards. This allows the
program to make direct calls
to the kernal routines without
having to go through a
complicated bank switching
routine. This area from 0000
to 03FF hex is a common area
in all banks. The source code
is edited in RAM 1 from
04000-FEFF hex (approx.
62.75K) although the actual
amount allocated may be
altered.
The assembler will allow
code to be assembled in any
of the predefined banks
(actually only RAM 0 and
RAM 1 are valid unless you
have a 256K machine), and a
limited relocation facility is
provided. The Commodore
machine language monitor
(MLM) can be accessed at any
time from the editor
command mode. The MLM X
command will re-enter the
editor.
The program will be given
in two sections. In this article I
will deal with the editor.
When you have typed in the
editor you may use any of the
commands except C which
calls the assembler. Without
the assembler code the
system will probably crash.
The Editor
First type in and save the small
program RELOCATE. This
program moves Basic to a
higher address in RAM 0 so as
to allow the assembler to be
constructed in the correct
place.
Note
You must always run this
program before using the
LOADER.
Now type in and save the
program LOADER. Usethisto
enter the hex data from the
main listing. It will be a long
job so my advice is that you
do it in stages. That way you
won't get frustrated if you
keep making mistakes.
If you look at the main hex
dump, you will see that each
line has an address, a hex data
string and a checksum value.
When you run the LOADER,
the menu will appear.
Options two and three save
and load the complete
program area i.e. the memory
occupied by both the editor
and the assembler (which will
be published in the near
future).
When asked for the start
address, enter 1C01. If you
save an incomplete version of
the program and intend to
resume at a later time, make a
note of the next address you
have to enter and use this
when asked for the start
address. When you have
entered the whole program,
type END.O to return to the
menu.
During entry the program
uses the checksum to validate
the input. It will request re-
input if an error is found
otherwise it will prompt you
with the address of the next
data string.
Keep these two programs
for use with the assembler.
Running the Editor
The program can be loaded
and saved like a Basic
program. Type RUN to enter
the editor. A message is
displayed and the computer
locked into lower case mode.
All commands must be
entered in lowercase
although uppercase may be
used in source text. The
assembler translates every-
thing into lowercase anyway.
The exception to this is the
text directive which will be
explained when you get the
assembler.
The Editor in
Operation
The operation of the editor is
similar to that of the normal
Commodore line editor,
lines are entered with line
numbers and the cursor keys
may be used to move around
the screen.
When first starting out on
the program, I suggest you
think carefully about how big
the source code is likely to be
and allocate as necessary.
Unlike the Commodore
editor, this program does not
remove spaces (max line
length is 255 characters). This
means that you can make
your text more readable by
indenting sections of code.
A list of error messages
follows. Most are self
explanatory.
Error Messages
Invalid or badly formatted
command. a
Invalid sub-command.
Line does not exist.
Invalid or missing parameter.
I/O error.
Invalid/out or range line
number.
No source program.
String too long.
Search fails (not really an
error).
Out of memory (program too
big!).
Search string too long.
Replace string too long.
Illegal device specification.
Cannot access device while
printer is engaged.
Not valid command for tape.
ASSEMBLER 1 28
The Editor Commands
?
A
8
C
D
E
F
I
K
L
M
O
P
R
S
T
Display help message
Aulo line numbering on/off
Sel bottomof text memory in RAM 1
Compile
Delete block
End Edit and exit to Basic
Display memory allocation
I/O
Kill program
List lines
Enter monitor
Recover (old) program
Printer prefix
Renumber lines
Search (and replace)
Set top of text memory in RAM 1
Editor Commands in Detail
? — Display help page. This displays a summary of the
editor commands.
A — Auto line numbering. This enables and disables
the automatic line numbering during program
entry. The format of the command is A
<increment>as in A 10 which sets an increment of
10. Auto numbering will commence from the last
line number entered plus the increment. The
operation of this command is similar in most
respects to the Basic 7.0 auto command.
B — Set bottom of text memory in Ram 1. Initially the
allocation to the editor in RAM 1 is about 63KB.
This command along with T alters that allocation.
Addressing is done in blocks of 256 bytes,
numbered 0 to 250. Giving the command B20 will
set the bottom of text to block 20 (actual address is
256*(block+4) therefore this address would be 6144
decimel or 1800 hex). The message ARE YOU SURE
is printed and the user must give the Y response
before the relocation is carried out. This is done
since this command destroys any program in
memory.
C — Compile. Details will be given with the assembler
listing.
D — Block delete. Format is D<start> — <end>as in D
20-230. Deletes a block of lines.
E — End edit and exit. The message ARE YOU SURE is
printed and the user must give a Y response. This is
donw since exiting the editor may destroy the
program in RAM 1.
F — Displays current text memory allocation and
number of bytes free.
I Input output. There are several forms of this
command.
I — Display I/O information
IC — Display current device directory
ID — set current device
IN — Set current filename
IS — Save file
IL — Load file
An important concept is that of the current device
and filename. For example:
Enter ID
Editor responds
CURRENT DEVICE =8 [DISK]
ENTER NEW DEVICE>
Enter 1
Editor responds
NEW DEVICE =1 [TAPE] OK.
Now enter IN
Editor responds
CURRENT FILENAME =""
ENTER NEW FILENAME>
Enter "test" including the quotes
Editor responds
NEW FILENAME ="test" OK.
Now enter 1
The editor prints the following:
CURRENT DEVICE =1 [TAPE]
CURRENT FILENAME ="TEST"
PRINTER IS OFF
When IS or IL is used the current device and name are
used. Note that ID and IN may be used as follows:
ID1
IN"test"
The IC command will displaythedirectory of the current
device if it is a disk drive.
IS and IL always load and save from/to the current
base block as determined by the B command. These two
commands will fail if no filename has been set or the
printer is on.
k — Kill program. Simply deletes the current file,
Confirmation is required. The program may,
under certain circumstances, be recovered with
the O command.
L — List lines. Format is <start>— <end>. Run/stop may
be used to halt the listing.
M — Enter MLM. Monitor's X command will re-enter
editor command mode.
Recover deleted program.
Printer prefix. Prefixing most commands with this
will cause output to be deflected from the screen
to the printer. Will not work with IL,IS and IC.
Renumber lines. Format is R<start>,<increment>
as in R 10,20.
Search. There are two different format to this
command. 1. S "<siring1>",R"<string2>":<start>,
<end>
2. S "<stringl>";<start>,<end>.
Form 1 finds every occurence of <stringl>and
replaces it with string 2 . If * is used for<start>or
<end> , scanning will be from/to the
beginning/end of the file.
Form 2 finds every occurence of <stringl>.
Set top of RAM 1. Same type of parameters as
B. Note that bottom cannot be greater than top.
O -
P —
R -
S -
T —
PROG
RAM: RELOCATE
10 BANK0:POKE16384,0
20 POKE 46,64
30 PRINT "(DOWN) NOW RUN
LOADER "CHR$ (34)
40 NEW
CHR$(34)
PROGRAM: LOADER
10 DO
20 SCNCLR
30 PRINT "ASEM 128 HEX LOADER"
40 PRINT
50 PRINT "1. ENTER HEX DATA"
60 PRINT "2. SAVE CURRENT WORK FIL
E"
70 PRINT "3. LOAD CURRENT WORK FIL
E"
80 PRINT "4. END"
90 PRINT "(DOWN) PLEASE CHOOSE OPTI
ON" .
100 DO:GETKEYA$ :A-VAL(A$) : LOOP UNT
IL A>0 AND A<5
110 :
120 :
130 ON A GOSUB 1000,2000,3000
140 LOOP UNTIL A-4
150 END
160 :
170 :
1000 REM *************************
*** *
1010 REM HEX ENTRY ROUTINE
1020 REM *************************
****
1030 :
1040 SCNCLR
1050 :
1060 DO
1070 : INPUT "ENTER ADDRESS (IN
HEX) ";S$
1080 LOOP UNTIL S$<>""
1090 S-DEC(S$)
1100 :
1110 PRINT "NOW ENTER DATA AS IT I
S PRINTED IN THE LISTINGS. THE CO
MPUTER WILL PROMPT YOU WITH THE A
DDRESS . "
1120 PRINT "YOU SHOULD ENTER THE D
ATA STRING FOLLOWED BY A CO
MMA THEN THE CHECKSUM VALUE AT T
HE END OF EACH LINE."
1130 PRINT "ENTER ' END , 0 ' TO EXIT
TO MENU.
1140 :
1150 PRINT
1160 :
1170 DO
1180 : DO
1190 : TT-0:H$- ,, ":C$-""
1200 : PRINT HEX$(S)
INPUT H$.C$
IF H$-"END" THEN EX
FOR X-l TO 64 STEP
AD-(X-l)/2+S
BY-DEC (MID$(H$,.X, 2)
BANK0 : POKEAD , BY
TT-TT+BY
NEXT
1210 :
1220 :
IT
1230 :
1240 :
2
1250 :
1260 :
)
1270
1280
1290
1300
1310 : IF TT< >DEC (C$) THEN
PRINT "DATA ERROR. RE-ENTER THIS
LINE"
1320 :
1330 : LOOP UNTIL TT-DEC(C$)
1340 :
1350 : S-S+32
1360 LOOP UNTIL H$-"END"
1370 RETURN
1380 :
1390 :
2000 REM *************************
* * * *
2010 REM SAVE CURRENT WORK FILE
2020 REM *************************
* * * *
2030 :
2040 GOSUB 5000 SETUP
2050 PRINT "SAVING WORK AREA"
2060 POKE 253,l:POKE 254,28
2070 SYS DEC("FFD8") ,253.192,62
2080 :
2090 PRINT DS$
2100 SLEEP 2
2110 RETURN
2120 :
2130 :
3000 REM *************************
** **
3010 REM LOAD CURRENT WORK AREA
3020 REM ******************** *****
* * * *
3030 :
3040 GOSUB 5000 SETUP
3050 PRINT "LOADING WORK AREA"
3060 SYS DEC("FFD5") ,0,1,28
3070 :
3080 PRINT DS$
3090 SLEEP 2
3100 RETURN
3110 :
3120 :
4000 REM *************************
ASSEMBLER 1 58
*****
4010 REM COLLECT DEVICE
4020 REM *************************
*****
4030 :
4040 INPUT "DEVICE NUMBER ";D
4050 INPUT "FILENAME " ; A$
4060 RETURN
4070 :
5000 REM *************************
*****
5010 REM SETUP FOR LOAD/SAVE
5020 REM *************************
*****
5030 :
5040 GOSUB 4000
5050 BANK 12
5060 SYS DEC ( "FFBA" ) . 1 , D , 0
5070 :
5080 SYS DEC ( "FF68" ) . 0 , 1
5090 :
5100 BANK 1
5110 PT-POINTER(A$)
5120 L-PEEK(PT) : LO-PEEK ( PT+1 ) : HI-P
EEK(PT+2)
5130 BANK 12
5140 SYS DECC'FFBD") .L.LO.HI
5150 RETURN
LISTING
1C01 101COAOOFE0231323A9E37313837000000004CB3234C1324080053303AOOOOOO 05B2
1C21 0000000000000000000000000000000000000000000000000000000000000000 0000
1C41 0000930E0B0D2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A 04FD
1C61 2A2A2A2A2A2A2A2A2A2A2A2A2A0D6153454D203132382E0D615353454D424C59 06EB
1C81 204C414E475541474520454449544F522F434F4D50494C45522E0D634F4D4D4F 08AB
1CA1 444F5245203132382056455253494F4E2E0D615052494C203139383620732E64 081B
1CC1 2E632EOD615353454D424C4552202F20454449544F522056455253494F4E2031 0857
1CE1 2E300D2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A 052D
1D01 2A2A2A2A2A2A2A2A2A2AODOD00930DOC8E454E44204F4620454449544F522045 06D0
1D21 5845435554494F4E2EOD003F4144454B4C5253494F50434D425446008827D927 08F2
1D41 09279227FB26A92561261C29DD2CFA2D632E3E302F2F7A2FA92F04300D415245 09CB
1D61 20594F5520535552452028592F4E293F000D454449544F5220434F4D4D414E44 07F5
1D81 533B0D4C205B4E5D5B2D4E5D20204C495354204C494E45530D52205B4E5D5B2C 0863
1DA1 495D202052454E554D42455 2204C494E45530D41205B495D2020202020204155 07A6
1DC1 544F204E554D424552494E47204F46462F4F4EOD44205B4E2D4E5D2020202044 07E7
1DE1 454C455445204C494E45530D3F2020202020202020202048454C502028544849 06EC
1E01 53204D455353414745 290D4520202020202020202020455849540D49 202020 20 0643
1E21 202020202020492F4F20494E464F524D4154494F4EOD4944205B4E5D20202020 072D
1E41 205345542043555252454E5420492F4F204445564943450D494E20223C535452 0821
1E61 3E22205345542043555252454E5420492F4F2046494C454E414D450D49532020 07E0
1E81 20202020202020534156452043555252454E542046494C450D494C2020202020 06D4
1EA1 202020204C4F4144204E45572046494C450D4943202020202020202020444953 0683
1EC1 504C4159204449534B204449524543544F52590D494920202020202020202049 075E
1EE1 4E495449414C4953452043555252454E5420492F4F204445564943450D4B2020 0834
1F01 20202020202020204B494C4C202844454C455445292043555252454E54204649 0742
1F21 4C450D4F202020202020202020205245434F5645522041204B494C4C45442050 06E9
1F41 524F4752414D0D53223C535452494E473E225B2C52223C535452494E473E225D 0888
1F61 3A4E5B2C4E5D0D2E20202020202020202020534541524348202826205245504C 06AC
1F81 414345290D4620202020202020202020444953504C4159204D454D4F52592053 0707
1FA1 54415455530D5020202020202020202020454E41424C45205052494E5445520D 0726
1FC1 4320202020202020202020434F4D50494C45 2028415353454D424C45290D4D20 06C3
1FE1 202020202020202020454E544552204D4F4E49544F520D422020202020202020 0635
2001 20205345542054455854204D454D4F525920424153450D542020 2020202020 20 0726
2021 20205345542054455854204D454D4F525920454E440D00494E56414C4944204F 0804
2041 52204241444C5920464F524D415454454420434F4D4D414E4400494E56414C49 0886
2061 44205355422D434F4D4D414E44004C494E45 20444F4553204E4F542045584953 0857
2081 5400494E56414C4944204F52204D495353494E472050415 2414D4554455 20049 0860
20A1 2F4F204552524F52O0494E56414C49442F4F5554204F462052414E4745204C49 084D
65
20C1 4E45204E554D424552004E4F20534F555243452050524F4752414D0053545249 0884
20E1 4E4720544F4F204C4F4E4700534541524348204641494C53004F5554204F46 20 0809
2101 4D454D4F52590053454152434820535452494E4720544F4F204C4F4E47005245 087F
2121 504C41434520535452494E4720544F4F204C4F4E4700494C4C4547414C204445 0861
2141 564943452053504543494649434154494F4E0043414E4E4F5420414343455353 089D
2161 20444556494345205748494C45205052494E544552204953202020454E474147 082B
2181 4544004E4F542056414C494420434F4D4D414E4420464F522054415045003820 07D2
21A1 5B206F208320A020AA20CB20DD20ED20FA2008211F21372154218421F600D002 0AE9
21C1 F6O16OA9FFD600D500D002D6016078A000A986A2888DAA028EB9O2A20120D3F7 0F33
21E1 A20120DAF75860A58A38E58485FDA58BE58585FE6085FB86FC20732220E821A5 11A0
2201 8A85861865FB858A8588A58B858765FC858B858920CF21A28620C421A28820C4 102F
2221 2120CF21A2FD20C421A5FED0EAA5FDD0E66085FB86FC20E821A584858638E5FB 1361
2241 8588A5858587E5FC858920CF21A28620BD21A28820BD21A2FD20C421A5FED0EA 1191
2261 A5FDD0E6A58A38E5FB858AA58BE5FC858B60A58A1865FBAAA58B65FCCD431C90 13CD
2281 0FF0034C8C22EC421CB0F8A2094CEE2460A2008616861720F122B039290F48A5 0C73
22A1 1748A5 164806 1626 17B02B06 1626 17B0256S1865 1685166865 1785 17B01806 16 07BE
22C1 26 17B012681865 1685 16 A5 17690085 1720EB2290C560A2054CEE2478A20148A9 0B49
22E1 828DB9026820DAF75860E63DD002E63EA000B13DC93AB00AC920F0EE38E93038 0F8F
2301 E9D06078A201A98220D0F7586078A20148A9828DCS026820E3F75860A547A448 0FD5
2321 8582848318A001200423F027A004C8200423D0FAC89865828584A0000820DC22 0CB8
2341 28A5836900C80820DC2228A6848682858390D260A547A648A00 1858286832004 0D7A
2361 23F027C8C8A517200E23901FF00388D00AA51688200E239012F0108820042385 0B65
2381 8488200423A68438B0CE1860A20020CFFFC90DF00B9D000EE8D0F3A2074CEE24 0E69
23A1 A9009D000EA900A20E853D863EA90D4CD2FFA53D48A53E48BA8E341CA906A20F 0C53
23C1 8D20D08E21D085F1A943A01C201125A9008D401CA9FA8D411CA900A204854786 0D30
23E1 48A9FFA2FE8D421C8E431CA547A64885828683186902858A8A6900858BA00098 0E1F
2401 20DC22C820DC22A9002090FF8D361C8D351CAE341C9AAD301CF003208D2EA9 20 0C41
2421 8DFA22AD361CF008AD351CF00320AB27208D2320F122F0DA9021A200DD2C1DF0 0DB9
2441 OAE8E01090F6A2004CEE248AOAAABD3D1D8516BD3E1D85176C1600A9FF8DFA22 ODDF
2461 2092222055230820F12228901E48A004200423C8C900D0F8981865828584A583 0BD1
2481 6900858598A200203322688D351CC900F050A204AOOOB13DF004E8C8DOF8E88A 0E83
24A1 8D331CA200A4828484A483848520F621AOOOA9FF20DC22C820DC22C8A51620DC OEDE
24C1 22C8A51720DC22C88484A0008485A485B13DC88485A48420DC22C88484CC331C 0F56
24E1 DOEC201D23A9008D2F1C4C13248AOA48A90D20D2FFA90720D2FF68AABD9F2148 0D1B
2501 BDA021A868201125A90D20D2FF4C132484178516A000B116F00A20D2FFC8D0F6 0E24
2521 E617DOF260A547A64885828683A001200423F00160A2064CEE24851684172049 0CE7
2541 25A900A00E4C1125A00084888489A200A51638F9A1 2585 16A517C8F9A1 259007 0C80
2561 8517E8884C512588A5 1679 Al 2585 168AD006248830061012A2808688093086FD 0C3B
2581 A6899D000EE88689A6FDC8C8C00890BEA5160930A6899D000EE8A9009D000E60 0E84
25A1 1027E80364000A0020262520EB22F04820922220552320F122F032C92DF0034C 0A56
25C1 5C2620EB22F01D209222A58248A58348205523A5828586A58385876885836885 ODCA
25E1 824C0426A9FF858785864C0426A5828586A58385874C0426A547A64885828683 0DF3
2601 4CE525A001200423F02D203B2620E1FFF025A583C587900DF002B01BA582C586 0E31
2621 90034C3826A00020042348C820042385836885824C04264C1324A00220042348 081C
2641 C8200423A868203B25A004200423F00620D2FFC8DOF5A90D4CD2FFA2034CEE24 0DD4
2661 20262520EB22F02B20922220F122F02BC92CD06E20EB22F069A51648A5174820 0CB5
2681 9222A5168586A5 1785876885 176885 164CA426A90A85 16 A9008517A90A8586A9 0C59
26 Al 008587A547A64885828683A001200423F02DC8A51620DC22C8A51720DC22A000 OCDE
26C1 A586 1865 1685 16A58765 1785 17B0 16 20042348C820042385836885824CAC264C 0AE2
26E1 1324A2032CA2054CEE24A95DA01D201125208D2320F122C9596020262520EB26 0A47
2701 D0034CEC234C132420262520EB22F06C209222205523906720F122C92DD05D20 0B7E
2721 EB22F058A5828586A5838587209222205523904BA00020042348C82004238583 0C48
2741 688582A583C5879039F002B008A582C586902FF02DA58238E58648A583E58748 1092
2761 A682A58686848582A683A5878685858368AA68203322201D234C1324A2032CA2 0D11
2781 022CA2054CEE24A972A01D2011254C132420EB26D011AE341C9A68853E68853D 0AE3
27A1 A90EA01D4C11254C1324A5 16 186D371C8516A5176D381C8517A51648A5 174820 08E7
27C1 49256885 176885 16 A2OOBD000EF0069D4A03E8DOF586D06020EB22D0098D361C ODOA
27E1 8D351C4C1324209222A516A6178D371C8E381CA9018D361CA9008D351C4C1324 0902
2801 A00085828683B13DC922FOOA9182C8DOF5A20A4CEE24COOOF00160A2004CEE24 0F3E
2821 18653D853DA53E6900853E6020EB22C922F0034C142920EB22A900A20C200128 0A4C
2841 C0A09005A20A4CEE248C3A1CC89820212820F122C93AD008A9008D391C4CA628 0C5D
2861 A2018E391CC92CF0034C142920EB22C952F0034C142920EB22C922F0034C1429 0B4F
ASSEMBLER 1 S8
2881 20EB22A900A20D200128C0A09005A20B4CEE248C3B1CC89820212820F122C93A OBBO
28A1 F0034C142920EB22D0034C1429C92AF00A209222205523905DB00BA547A44085 0B63
28C1 82848320EB22A5168588A517858920F122F035C92CD03C20EB22F037AAA58248 OFOE
28E1 A58348E02AF00A2092222055239027B006A9FF85168517A516A6178D371C8E38 0C4A
2901 1C68858368858260A5888D371CA5898D381C60A2002CA2024CEE24A9003D361C 0C2F
2921 8D351C202D28A00020042399000BC8C00490F5A2008E3F1C8E3D1C2004239900 0941
2941 0BF009EE3D1CEE3F1CC8D0EFEE3F1CA904A20B853D863EA2008E3E1CAE3D1CEC 0DC1
2961 3A1CB0034C752AAOOOB13DD9000CD008C8CC3A1C90F3BOOBCE3D1CEE3E1CE63D 0CF9
2981 4C5D298C3C1CAE331CD0034C4F2AA200BD000B9D000EE8E00490F5A200EC3E1C 0B9F
29A1 F009BD040B9D040EE8DOF2AOOOA90E853EB9000D913DC8CC3B1C90F59818653D 0D8E
29C1 8586A53E8587A53D186D3A1C853DA90B853EA000B13D9186F003C8D0F7AD3F1C 0E1F
29E1 186904481865828584A5836900858568A200203322A204BDOOOEF003E8DOF8E8 OCEB
2A01 8AA200A4828484A483848520F621A000B9000E20DC22C8C00490F5B9000E0820 0D46
2A21 DC2228F003C8D0F3A58248A58348201D23AD020EAC030E203B25A92020D2FFA9 0D40
2A41 04AOOE201125A90D20D2FF189020A58248A58348AD020BAC030B203B25A92020 0A33
2A61 D2FFA904AOOB201125A90D20D2FF688583688582AD020BCD371CD008AD030BCD 0D3F
2A81 381CF019A00020042348C82004238583688582A001200423F0034C2729AD3C1C 098E
2AA1 F0034C1324A2084CEE24C901FOODC9089004C90C9005A20C4CEE246020F122C9 0C7C
2AC1 22D0 16 20EB22A91EA21C20DF2AC010B0088C1A1CA9009 18260 A2034CEE24A000 OBEC
2AE1 85828683B13DC922F018C900F0149182C8C01090EFA2072CA203A9008D1E1C4C 0E1E
2B01 EE24C000F0F260AD191CC901D00160AAA90FA820BAFFA20CA9012068FFAE1A1C 0E97
2B21 E8E8E88AA21BA01C20BDFF20C0FFB00520B7FFF01220E7FFAD191CC901F00320 10C8
2B41 412EA2044CEE24600D43555252454E54204445564943453D000D454E54455220 08BB
2B61 4E4557204445564943453E000D43555252454E542046494C454E414D453D2200 07E8
2B81 454E544552204E45572046494C454E414D453E00204F2E4B2EOD004E45572044 0798
2BA1 45564943453D004E45572046494C454E414D453D22000D4C4F4144494E472046 07C4
2BC1 494C452022000D46524F4D2044455649434520000D534156494E472046494C45 0762
2BE1 2022000D544F20444556494345 2000205B544150455D00205B4449534B5D0050 0737
2C01 52494E54455220495320004F46460D004F4EODOOAD191C48A000203B2568C901 07BE
2C21 F007A9F8A02B189004A9F0A02B4C1125A91EA01C201125A9224CD2FFA949A02B 0D73
2C41 2011254C152CA96DA02B20112520312CA90D4CD2FFA900A02C201125AD301CD0 09FE
2C61 07A90CA02C4C1125A911A02C4C112520EB22D012203D2CA95AA02B201125208D 097B
2C81 2320F122F020209222A517D01CA51620AB2A8D191CA99CA02B20112520152CA9 0AC4
2CA1 95A02B2011254C1324A20C4CEE2420EB22D00D20472CA981A02B201125208D23 09FD
2CC1 20BD2AA9A8A02B20112520312C4CA02C203D2C20472C20562C4C132420EB22DO 094C
2CE1 034CD12CC944D0034C702CC94ED0034CAF2CAE301CF005A20D4CEE24C953D003 0D10
2D01 4C1C2DC94CD0034C8D2DC943D0034C9B2EC949D0034C232F4C13242026 25AD1E 0AB3
2D21 1CD005A2034CEE2420082BAD191CC901D00320E9E9A9D5A02B2011 252031 2CA9 0B7D
2D41 E4A02B20112520152CA90D20D2FFA00120702DA547A44885168417A916A68AA4 OCOC
2D61 8B20D8FF20872DA90D20D2FF4C1324A901A20C2068FFAE191C20BAFFAD1A1CA2 ODAO
2D81 1EA01C4CBDFFB001604C362BAD1E1CD005A2034CEE24A547A44885828483A001 0CE6
2DA1 200423F00520EB26D03AAD191CC901D00320C8E9A9B7A02B20112520312CA9C7 0C35
2DC1 A02B201 12520 152CA00020702DA900A647A44820D5FFBOOF868A848BA90D20D2 OBDB
2DE1 FF201D234C1324A547A44885828483A900A00120DC224C362BA547A448858284 0C40
2E01 83A001200423FOOAA92DA02E2011254C1324A001A9FF20DC22201D23A5821869 0A51
2E21 02858AA5836900858B4C13240D50524F4752414D205245534944454E540D0049 092E
2E41 A90FAE191CA820BAFFA901A20C2068FFA901A240A02E20BDFF20COFFA90F20C3 OEAB
2E61 FF60AD301CD025A904AAA00720BAFFA90020BDFF20COFFB010A9018D301CA204 0E71
2E81 20C9FF20EB224C34244C132420CCFFA90420C3FFA9008D301C60A901AE191C20 0C45
2EA1 192FA00020BAFFA901A20C2068FFA901A218A02F20BDFF20COFFB04920B7FFDO 0F2D
2EC1 44A20120C6FF20092F20092F20092F20092FF02620092F20092F20092FF0ED09 08F0
2EE1 22DOF720092FFOOAC922FOF720D2FF4CE42EA90D20D2FF4CCD2E20CCFFA90120 OFFF
2F01 C3FF4C13244C362B20CFFFBOF84820B7FF29BFDOF0686024E001F00160A20E4C 0F68
2F21 EE24AE191C20192F20412E4C1324A948A22FAC000A8C311CAC010A8C321C8D00 08DE
2F41 OA8E010A4COOBOA9068DOOFFAD311CAE321C8DOOOA8E010AA963A02F2G11254C 097D
2F61 13240D654449544F522F415353454D424C455220312E300D0020EB22C900F023 08BD
2F81 209222A517D01C20D42FC9FBB015CD411CF002BOOE8D401C6904A20085488647 0C94
2FA1 4CEC23A2034CEE2420EB22C900F0F4209222A517D0ED20D42FC9FBB0E6CD401C 102B
2FC1 90E18D411C186904A2FF8D431C8E421C4CEC23A5164820EB26F0034C1 3246860 0C26
2FE1 54455854205350414345203D0020424C4F434B532C0020425954455320465245 07DC
3001 450DOOAD411C38ED401C18690148A9E1A02F20112568A000203B25A9EEA02F20 0A64
3021 1125AD421C38E58A48AD431CE58BA868203B25A9F7A02F2011254C1324202625 OAEF
Tony Crowther
shows how to speed
up the C128 in C64
mode.
WHEN COMMODORE
launched the C128 computer
they said that it had a C64
computer inside it. They
claimed at the time that this
was completely compatible
with the normal C64 com-
puter. Well, time has demon-
strated that it isn't, as many
programs will not work on the
C128. Obviously there must
be some differences between
the normal C64and the one in
the cm
The differences don't only
have to be a bad point. It is
possible to use some of them
to your advantage if you
know what you are doing.
As you probably know the
C128 has a FAST instruction
that blanks the screen and
causes it to run in 2MHz
mode. You probably didn't
know that this fast mode is
also available from the C64.
Below are two example
programs that will allow you
to use this 'bug' to your
benefit. For each program I
have supplied an assembly
listing for those of you who
wish to know how they work.
I use the Machine Lightning
assembler, but for those who
simply wish to use them I have
included a simple Basic
loader that will SAVE the
machine code on to your disk
or tape. If you are using tape
then change the ,8,1 after the
SAVE"name" in each loader
to ,1,1.
Program 1
This machine code program
when activated by SYS 49152
will access the C128's 2MHZ
processor so that the execu-
tion speed of the C64 is
changed from .9Meg to
1.2Meg with full screen
display. The program doesn't
finish there however. By
pressing the 'F7' key the
screen is blanked out from
the bottom up. By blanking
more of the screen it is
possible to alter the speed of
the C64 from 1.2Meg up to
2Meg. The greater the
amount of screen blanked the
faster the program. The
screen can be unblanked by
pressing the 'F8' key slowing
the C64 down.
Note when this program is
running you will lose the
ability to talk to any peri-
pherals. Therefore hit RUN
STOP/RESTORE to quit. If at
this point the screen goes
funny then either hit the
RESET button or type the
following line in blind:
POKE 53296,252.
RUN STOP/RESTORE does
not always reset the 2Meg
latch as this is inside the C128
and not the C64, hence the
need for this POKE to reset
the latch to normal.
Both of the programs in
this article can be used on the
128 if you alter the interrupt
vectors at $314 and $315.
Don't attempt this unless you
know what you are doing.
Program 2
This program works in a
similar fashion to the above
program. However, this time
the screen is blanked from
the top down, not from the
bottom. Blanking in this
program is also much quicker
than the other version of the
program.
So what use are these
programs? You could use the
routines to improve the
speed of calculation
programs. Who knows we
may even start to get
programs that have a faster
mode for C128 computers.
PROGRAM: 1 CODE
10
*=4C0B0
20
SHIFT
= 1
30
SHIFTKEY
=653
40
CHECKKEY
= 137
50
FUNCTI0N7
=3
68
RASTER
^53266
70
SCREENBLANK
=53265
•80
BLANK
= 123
90
NORMAL
=27
100
SCREENTOP
=50
110
MEGABIT
=$0030
170
ON
=*FD
130
OFF
=*FC
MB
NORM IRQ
=59953
15B
LEAUEIRQ
=60033
160
JMPUECIRQ
=78B
170
TIMERP
=56334
180
190
■
200
ORG
210
220
230
748
250
260
270
780
290
300
310
320
330
340
350
360
370
380
390
430
410
420
- 430
5tART
SEI
LDA
STA
LDA
STA
LDA
STA
■IRQ&25S
JMPUECIRQ
*IR0/2S6
JMPUECIRQ*1
•0
TIMEPA
LDA ■NORMAL
STA SCREENBLANK
LDA *1
STA 53273
STA 53274
t
LDA *250
STA MCUINGRAST
»
CLI
450
460
470
480 IRQ
490
500
510
520
530
540
550
560
570
580
590
600
610
620
630
640
650
600
■
i. da m
STA 53273
■
INC COUNT
LDA COUNT
BNE IRQPART2
lDA "NORMAL
STA SCREENBLANK
LDA "OFF
STA MEGABIT
1 * "*
LDA MOUINGRAST
STA RASTER
■
PLA
TAY
PLA
TAX
680
PLA
260
a ant
QT T
Kl 1
^70
Tin
/ /0
■
28B
730
IRQPART £
i nfl
LUn
-Dl AkllS
290
T >1
CIO
b IM
CPDPPWRl A*Jtf
300
■
•
310
700
1 OA
LUn
•Uri
320
770
b 1 n
MCI7AQ I T
330
inn
/OB
•
•
340
790
l n/\
LDA
"bLKfcfcn lUr
350
b 1 n
DOC ICO
Knb i tK
360
810
1
370
~ ,
LUn
300
830
bin
luum i
390
840
I
400
i cp
410
of a
*
lift
9*:0
aim
IMP
JI W
WflPM I PP.
HUM 1 1
•»30
300
•
4*10
450
ato
unr
■pi imp 1 t r\M7
460
3 JO
one
470
CI .'. i?
•
>
480 IRQ
LUA
bH Ir IKtY
490
nan
960
AND
■SHIFT
583
970
BEQ
NOSHIFTKtY
510
306
520
4 ^ 'A
LUP
Mill (TfclODAtf^T
nUUlNbKAb T
530
I C<CO
TMP
— eo
- . ■ ■
j40
(At A
1010
tKKUK
550
•
•
inn
J Is Jo
ncr
i iuv i riunna i
570
1 Aj* A
. . -1
1 CO
JbK
LntLKr UKUnn
580
. - _ i ■
ore
Dl>3
i nnp i
LUUr 1
530
- oQt
I
600
FRROR
PTC
610
1 (JQH
•
620
'. B9fl
!
630
1 1 fSQ
1 1U0
NUbplr 1 Kti
i n a
LUn
810
1110
LMr
652
tKKUK
6A0
1 130
•
670
1140
LOOP 2
INC
nUUINGRAST
680
1 1 J0
1 CP
JbK
LntLUr UKUnn
690
. . ' l
arc
oLb
i fine?
LUUr t
700
1 1 /0
r
710
1 1 HP
pre
720
1 • JO
■
730
1 ' J>»
1 , r. i.
t
740
*
758
1 ?7R
'>•*■.■ in
1 DA
MflUlNRRA^T
i iuvi riurvns i
760
Aton
nr«u
770
1 i^H
run
ml
780
■ fan
nuunM
790
1 Oca
■
•
B00 IRQPART2
127H
(— r— t~
SEC
810
1 288
RTS
■
820
1290
*
830
. -i V
bin nMA
NUUpn
CLC
848
i Jib
RTS
850
1320
*:
860
1330
;
878
1340
MOUINGRAST
.BYTE 0
B80
1350
COUNT
.BYTE 0
898
1360
•
1370
•
tl 10
. ■
■j.'W
PROGRAM: 2 CODE|
930
940
958
10
x=*C000
9R0
20
SHIFT
=1
970
30
SH1FTKEY
=653
980
40
CHECKKEY
-197
S30
50
FUNCTI0N7
=3.
1000
60
RASTER
=53266
1010
70
SCREENBLANK
"53265
1 oe.<o
80
BLANK
= 123
!■ .•> rKLbbr/
90
NORMAL
= 27
1 n^n
100
SCREENBOTTOfl
= 250
1 030
110
MEGABIT
=*D03fi
1000
120
ON
= *FD
10/0
130
OFF
= $FC
1080
140
NORM IRQ
=59953
1090
150
LEAUEIRO
=60033
1 100
160
JMPUECIRQ
=788
1110
170
TIMERA
=56334
1 1 Z0
180
•
■
1 1 J0
130
1148
200
".ORG
»C000
1 lbU
210
-
1160 ERROR
220
START
SEI
J170
230
P
!180
740
LOA "1RQ8.255
1 130 NOSHIFTKEY
250
STA i
IMPUECIRQ
1200
LOA "IRQ/256
STA JMPUECIRQ^l
LDA "8
STA TIMERA
LDA ^NORMAL
STA SCREENBLANK
LDA •!
STA 53273
STA 53274
LDA -1
STA M0U1NGRAST
*
CLI
RTS
LDA «1
STA 53273
INC COUNT
LDA COUNT
BNE IRQPART2
■
PHA
PHA
PHA
PLA
PLA
PLA
LDA "OFF
STA MEGABIT
LDA "SCREENBOTT
STA RASTER
LDA "NORMAL
STA SCREENBLANK
PLA
TAY
PLA
TAX
PlA
RTI
LDA "BLANK
STA SCREENBLANK
LDA «0N
STA MEGABIT
•
LOA MOU I NGRAST
ASL A
ASL A
ASL A
CLC
ADC "50
STA RASTER
LOA «255
STA COUNT
JSR PRESSF7
*
J MP NORM IRQ
LDA CHECKKEY
CMP "FUNCTI0N7
BNE NOKEYPRESS
LDA SHIFTKEY
AND "SHIFT
BEQ NOSHIFTKEY
LDA MOU I NGRAST
BEQ ERROR
*
DEC MOU I NGRAST
*
RTS
LDA MOUINGRA?
CMP "24
1210
1220
1230
124e
1250
1260
1270
1280
1290
1300
1310
1320
NOKEYPRESS
M0U1 NGRAST
COUNT
CG4
BEQ ERROR
INC MOU I NGRAST
■
RTS
.BYTE B
.BYTE Z
2000 FOR L=0 TO 9:CX=0:FOR D=0 TO 15
:READ A:CX=CXtA:POKE 49152*L»16+D.A
:NEXT D
2010 READ A: IF AOCX, THEN PRINT ERROR
IN LINE":2040 + CL*!8):STOP
2020 NEXT L
2040 DATA 120,169.36.141.20.3.169,192.
141 .21.3,1.69,0.141 ,14.220.1559
2050 DATA 169.27.141.17.208.169.1.141.
25,288.141 .26.208.169.258.141 .2041
2060 DATA 155.192.88.96.169.1.141.25.
208 .239 . 1 56 . 1 92 . 1 73 . 1 56 . 192 .208 .
2390
2070 DATA 22.169.27.141.17.208.169.
252.141 .48.208.173.155.192.141 .18.
2081
2080 DATA 208.104.168.104.170.104,64.
169.123.141 ,17.208.169.253.141 .48.
2191
2090 DATA 208.169.50.141.18,208.169.
255.141 ,156.192.32.97.192.76.49,
2153
2100 DATA 234.165.197.201.3.208.38.
173.141 .2.41 .1 .240.16.173.155.1988
2118 OATA 192.201.58.240.8.206.155.
192.32.142.192.176.248.96.173.155.
2466
2128 OATA 192.201.250.240.248.239.155.
192.32.142.192.176.248.96.173.155.
2930
2138 DATA 192.41,7.201.3.208.2.56,96.
24 .96 . 0 . 0 ,0 , 255 .255 , 1 436
3000 REM xx READY FOR SAUE XX
3010 PRINT "C CLEAR .D0UN2 .SPC23DATA
OK PRESS SPACE TO SAUE"
3020 GET Kt: IF K*<>' "THEN 3020
3030 POKE 43.00:POKE 44,192
:P0KE 45,I6l:P0KE 46,192:CLR
3040 SAUE "PROG t CODE ,8,1
2000 FOR L=0 TO 9:CX=0:FDR 0=0 TO 15
:READ A:CX=CX*A:POKE 49152+Lxl6+D.A
:NEXT D
2010 READ A: IF AOCX THEN PRINT 'ERROR
IN LINE :2040*CLX10 USTDP
2328 NEXT L
2040 DATA 120.169.36.141.70.3.169.192.
141 .21 .3.169.0.141 .14.220.1559
2850- DATA 169.27,141 .17,208.169,1 .141 ,
25.208.141 ,26.238.169.1 ,141 ,1792
2068 DATA 142.192.88.96.169.1,141.25.
208 , 238 . 1 43 . 1 92 . 1 73 . 1 43 . 1 92 , 288 ,
2351 0
2070 DATA 27 .77 .72 ,72 . 104 . 1 04 . • 04 . 169 ,
252.141 .48,208,169.250.141 ,18,1951
208* DATA 208.169.27.141.17.208.104.
1 68 . 1 04 . 1 70 . 1 04 .64 . 1 69 . 1 23 . 1 4 1 . 1 7 .
1934
2090 DATA 208.169.253.141.48.208.173,
142,192.10.10,10.24.105.50.141 .1884
2100 DATA 18.206.169.255.141 ;143. 192.
32,189.192.76.49.234.165.197.201 .
2381
2110 DATA 3,208.76,173,141,2,41,1.240.
9.173.142.192.240.3.286.1800
2120 DATA 142.192.96.173.142.192.201.
24 ,243.248.238.142,192.96.0.8.2318
2130 DATA 192.41.7.201.3.288.2.56,96.
24 . 96 .0 .0 ,0 .255 .255 . 1 436
3880 REH xx RF.ADY TO SAUE xx
3018 PRINT "t CLEAR .D0UN2 ,SPC2 1 DATA
OK PRESS SPACE TO SAUE"
3028 GET Ki: IF K4<>" " THEN 3020
3048 POKE 43. 00: POKE 44.192
:P0KE 45,148:P0KE 46.197:CLR
3850 SAUE "PROG 2 CODE" .8,1
t,9
Gary Herman brings you the
first part of a series which will
show you how to make the
most of your C64's musical
talents.
IT'S A FREQUENTLY REPEATED FACT
that Commodore Basic is the worst thing
about the 64. From a musical point of
view, all the instructions are realised as
POKEs (or PEEKs in some instances) to
memory locations corresponding to
particular registers on the machine's 6581
programmable sound generator.
This makes for a relatively easy
transition to machine-code programming
— a topic we'll be dealing with in detail
later in the series since sound synthesis
and music programming are more
effective as you get closer to the hardware
level. An introduction to Basic techniques
is useful because the 64 sound commands
are already very close to the hardware
level. Unless you use a Basic extension, a
high-level language or music utility,
music programming in Commodore Basic
will inevitably bring you to within spitting
distance of the computer's hardware. This
is not the case with any other popular
machine.
For Basic use, all you really need to
know is that location 54272 corresponds
to register zero on the 6581 chip and the
locations, like the registers,are numbered
in steps of one upwards. This is because
the 6581 sound interface device is
memory-mapped. It is addressed at
location D400 HEX (54272 DECIMAL). That,
is. the chip is enabled when address lines
A15, A14, A12 and A10 are all high. The
lines AO to A4 are then used to address
SID's registers. While there are 32 possible
addresses using AO to A4, SID actually has
only 29 registers. The last three addresses
(54301, 54302 and 54303 — or, in hex,
D41D, D41E and D41F) are not used.
In general, POKEing a memory
location can best be understood as setting
certain data lines high and others low,
There are three independent sound
channels on the Commodore, each one
requiring at least five and at most seven
different locations to be POKEd. Then
there are seven locations which relate to
all three channels - three write-only
locations and four read-only locations.
The write-only locations are the SID
registers used to set up the sound you
wish to produce. Setting up the sound is
just a matter of POKEing the right data
into the right location.
Typically, the procedure is first to
POKE location 54296 with a volume
setting which, as it were, sets up all the
channels. This setting is a value between
zero (off) and 15 (maximum). Thus 54296
GOING FOR
A SONG
can be divided into two nybbles (four bit
numbers), the least significant or right-
hand nybble comprising bits number
three, two, one and zero of the byte
addressed at location 54296. POKEing
542% with, say, nine sets bit three high (1 ),
bit two low (0), bit one low (0) and bit zero
hieh (1). This gives 1001 as our nybble, in
ioo rem itiiiiiimmiitittitiiitiiii
110 REM UUISTING IttUttltttlltltttl
120 REM IIIENVELOPE USING BASIC LOQPIt
130 REM ft (LINEAR DECAYIIUIIIIIUUII
140 REM ttftlttttttftttfttfftftffttffl
150 S=54272:L=S:H=S*I:N=S+4:A=S+5:R=S+
6:V=S+24
160 Y=15:F=34:E=240:Q=33:X=10
170 FOR P=0 TO 24:PQKE S+P,0:NEXT
1B0 POKE R,E:PDKE H,F:P0KE H.Q
190 FOR P=l TO 40:Y=Y/1.06:P0KE V,Y:NE
XT
200 POKE H,0
READY.
READY.
Program Listing 1
100 REHunnnntumnminmnn
110 REM 1 1 1 L I ST ING 21UII UU lit tllU It
120 RENIIINATURAL DECAYttt tf tttttttttt
130 REHiiiitiiiitiiiuiiiuiiiiitiuit
140 S=54272:L=S:H=S+1:M=S*4:A=S*5:R=S+
6:V=S+24
150 Y=30: F=34: E=240: Q=33: X=l 0
160 FOR P=0 TO 24:P0KE S*P,0:NEXT
170 POKE R,E:PQKE H,F:P0KE H,9
180 FOR P=l TO 60:P0KEV,Y-3.31L0B(P):N
EXT
190 POKE N,G
Program Listing 2
binary code, and 1001 binary isequivalent
to nine decimal. The other, high order,
nybble at location 542% is made up of the
four most significant bits of the byte —
numbers seven, six, five and four. Setting
six, five and four high or low has the effect
of switching on or off one of the 6581
chip's filter modes. Setting bit seven high
or low has the effect of turning off or on
the audio output of channel three.
Having set a volume, you must then
select the desired channel for output and
POKE the two associated locations with
.
ioo rem mmmtmuuutummu
110 REM UILISTIN6 3ttllllllllllltll!l
120 REM IIITUNE HITH NOTE DURATION!!!!
130 REH t tt tVARI ABLE T FIXES TEMPO! Ill
140 REH IIIIA,Bl<C SET FREQ & DURATION!
150 REM lltttlltlllllllllllttlltllltll
160 POKE 54296, 15:P0KE 54277,9: POKE 5
4278,33
170 READ A,B,C
1B0 T=20
190 IF A=0 THEN END
200 POKE 54273, A: POKE 54272,B
210 POKE 54276,17
220 FOR P=l TO TtCrNEXT
230 POKE 54276,0
240 FOR P=l TO T:NEXT:REM UIDELAYIII
250 60T0 170
260 REH IHDATA:HI FREQ, L0 FREQ, DURATI
0NII
270 DATA 19,63,20,21,154,20,17,37,30,8
,147,15,12,216,40,0,0,0
READY.
SEARCHINB FOR 4. LISTINB4. LIST IN6
Program Listing 3
too Ren timmmmt
110 REM ttf LISTIN6 4111
120 REN MIT SETSHI
130 REM Itl TUNING III
140 reh tmnmmm
150 PRINT CHRM147); , WIT':T=100:K=0.5
:REN TEMPO AND TUNIN6
160 DIH F$(3,99),HF(3,99),LF(3,99),DI3
,99)
170 DIH N(14),DU(3),HF{3),F»I(3),EN(3)
180 FOR 1=1 TO 14: READ NIX) : NEIT
190 60SUB 440: POKE 54296,15
200 FOR V=l TO 3
210 READ AD,SR,HP,lP,Fti(v)
220 POKE AD(V),AD:POKE SR(V) ,SR:P0KE P
H(V),HP:P0KE PL(V),LP
230 NEIT V: 1=1
240 FOR V=l TO 3: READ F$,D(V,I)
250 IF F$='R" THEN F=0:G0T0290
260 IF FS=M" THEN EN (V) =1 : 0=0*1 : 60T03
00
270 0C=VAL(RI6HT»(F$,1))
280 F=N(2t(ASC(LEFT$(F$,ll)-64)*(lEN(F
i)=2)):F=FI2 A (QC-4)
290 HF(V,I)=INT(F/256):LF(V,I)=F-HF(V,
1)1256
300 NEXT V
310 1=1+1
320 IF 0=3 THEN 340
330 60T0 240
340 FOR K«1 TO I
350 POKE MF(1),0:P0KE MF(2),0:P0KE NF(
S! t O
360 FOR V=l TO 3
370 POKE FH(V),HF(V,K):POKE FL(V),LF(V
,K)
380 POKE HF(V),FN(V)
390 NEXT V
400 FOR P=l TO T:NEXT
410 IF Z=3 THEN END
420 NEXT K
430 END
440 S=54272:F0R X=l TO 3:CH=7I(X-1)
450 FL(X)=S+CH:FH(X)=FL(X)+1:PL(X)=FH(
X)*1:PH(X)=PL(X)*1:NF(XJ=PH(X)*1
460 AD(X)=NF(X)+I:SR(X)=AD(X)*1
470 NEXT: RETURN
480 RENU 'FREQUENCY DATAtttltltUUtU
mmm
490 DATA 7381,7818,8271,0,4378,4647,49
15
500 DATA 5217,5519,0,5855,6207,6576,69
62
510 REHtllENVELOPE, PULSE AND WAVEFORM
DATAUtlt
520 DATA 40,40,7,255,17
530 DATA 9,127,7,255,65
540 DATA 9,255,7,255,17
550 REMIMNOTE DATAtliUtUIUUUItM
mmm
560 DATA A4,8,A4,8,A5,8,C4,12,C4,12,C4
570 DATA A4,4,A5,4,A4,4,F3,16,F4,16,F4
,16
580 DATA D4,8,D4,B,D3,8,C4,24,C3,24 f C4
,24
590 DATA A4,8,D2,8,A3 ( 8,L3,12,E3,12,C4
600 DATA A4,4,D2,4,A5,4,F4,16,C2,16,F5
,16
610 DATA D4,8,D4,8,D5,8,E4,8,E4,B,E5,8
620 DATA C4,8,C4,8,C5,8,B4,8,B3,B,B4,8
630 DATA C4,4,C4,4,C4,4,D4,4,D3,4,D4,4
640 DATA E4,4,G3,4,E4,4,F4,4,F3,4,F4,4
650 DATA G4,4,G3,4,G3,4,A4,4,A3,4,A4,4
660 DATA AI4,8,At4,8,A#4,8,D4, 12,05,12
,64,12
670 DATA AI5,4,AI4,4,AI3,4,A5,16,A4,16
, A3, 16
680 DATA G4,8,G3,8,D4,8,FI4,24,Ft4,24,
D4,24,G4,24,G3,24,D4,24
690 DATA G4,8,64,8,G3,8,A4,12,C4,12,E4
,12,64,4,E4,16,C4,8
700 DATA C5,8,C4,8,F3,8,C4,8,C4,8,C4,B
,F4,4,F4,4,F4,4,A4,4,A4,4,A4,4
710 DATA C5,4,C5,4,C5,4,At4,4,C5,4,AI4
,4,G4,4,E4,4,C4,4
720 DATA A4,8,A4,8,A4,8,C5,12,C4.12,F4
,12,A4,4
730 DATA F4,16,F3,16,F4,16,D4,8,D5,8,D
4,8,F4,24,F3,24,F4,24
740 DATA C4,24,C3,24,A3,24,D4,8,D4,B,D
4,8,FI4 ( 12,D3,12,FI4,12,A4,4,A3,4,A5,4
750 DATA D5,16,D4,16,G4,16,D4,8,A4.8,C
5,8
760 DATA B4,24,B3,24,B5,24,B4,B,G4,8,D
4,8,B3,4,D4,4,G4,4,B4,4,B4,4,B4,4
770 DATA C5,8,C5,8,C5,8,C4,B,G4,8,C4,B
,64,B,G4,8,C4,B
780 DATA C4,16,E4,16,G4,16,AI4,B,C4,8,
E4,B
790 DATA AI3,8,C4,8,C3,B,F4,24,F3,24,F
5,24,F4,24,F4,24
800 DATA C4,24,F4,24,A4,24,C4,24,R,24,
C3, 24, B3,48,B2, 48,04,48
810 DATA AI3,32,E4,32,AI4,32,C4,24,AI4
,24,C4,24
820 DATA F4,48,F4,4B,A3,24,AI3,24,B3,2
4,F4,24
830 DATA C4,24,F4,24,C2,24
840 DATA 1,0,1,0,1,0
Program Listing 4
bytes which set attack, decay, sustain and
release characteristics. The ADSR values
must be entered before the note is
actually turned on, which is a feature of
the hardware.
ADSR values are represented by
nybbles — attack is the high order nybble
of one byte and decay the low order
nybble of the same byte, while sustain and
release are the high and low order
nybbles, respectively, of the byte entered
into the next location in memory. Thus
there are 16 possible values for each of the
ADSR parameters, corresponding to the
16 possible values of one nybble. Decay
values, for example, are — in decimal —
any number between zero and 15, while
attack values {as the high order nybble)
are any multiple of 16 between 0*16 and
15*16. They can, of course, be added
together to give a combined setting for
attack and decay, since we can visualise
this process simply as one in which bits are
set low or high in both nybbles by
determining a value for a single byte. If
the value to the POKEs are exact and
different powers of two, (0,1, 2,4,8, 16, 32,
64, or 128), the effect of adding them is the
same as performing a logical OR on them,
since POKEing a location with one of the
above powers of two sets precisely one
data line high. This point should be borne
in mind for future reference.
The table below gives the real values
corresponding to ADSR parameter
settings. Note that A,D and R are given as
rates (that is, the lower their value, the
faster that phase of the envelope is over)
while S is a proportion of peak volume.
During the attack phase, the sound rises
to the level set by POKEing 542% (the
peak level). During the decay phase, the
sound diminishes to a level set by the
sustain value (the plateau level). This can
be any of 16 values from the peak value
itself (if sustain is set at 15) to zero. Setting
sustain to eight, for example, would give a
plateau level of roughly half the peak
value — that is, for all practical purposes,
plateau level = peak value * (sustain
value/16). All amplitude values on the 64
increase linearly, which is to say that
amplitude (which is heard as a linear
increase) you need to double the setting:
thus an amplitude of eight is twice an
amplitude of four (which is not the case
with other computers). Programs 1 and 2
use FOR-NEXT loops to create decaying
notes, the first decreasing in volume or
amplitude by linear steps, the second by
an approximate halving at each step.
Notice the difference in effect. Also note
the actual locations used.
Value
Attack
Decay/ Sustain
Release
0 (&0)
2 mS6 mS 0
1 (&1) 8 mS
2 |&2) 16 mS
3 (&3) 24 mS
24 mS
48 mS
72 mS
0.07
0.14
0.20
4 f&4)
38 mS
114 mS
0.27
5 (&5)
56 mS
168 mS
0.34
6 (&61
68 mS
204 mS
0.41
80 mS
240 mS
0.48
100 mS
300 mS
0.54
250 mS
750 mS
0.60
500 mS
1 5 S
0.68
n (&b>
800 mS
2.4 S
0.74
12 (&C)
1 S
3S
0.80
13 (&D)
3 S
9S
0.87
14 |&£)
5 S
15 S
0.94
15 (&F)
8 S
24 S
1.00
The
sustain
figures
are only
approximate and the timingsare based on
a 1 MHz clock, while the actual clock rale
is 1.02 MHz in the US and 0.98 MHz in
Britain. The attack figures give the amount
of time taken for the note to rise from
zero to whatever the peak amplitude is.
Therefore, with a low peak amplitude, the
attack will appear gentler than with a high
peak amplitude. Similarly, decay and
lease rates give the amount of time
en for the note to decay or release to
ro amplitude. If a non-zero sustain
'ue is set, the decay will be interrupted
fore ihe specified time is up. If a note
decays from a low peak value, or is
released from a low plateau value, then
the time taken is as specified, so that the
decay or release will be gentler than if the
peak or plateau values were higher.
Having set overall amplitude and
envelope parameters, the next step is to
set frequency. The Commodore has a
range of almost eight octaves. The
nominal frequencies can be calculated
using the formula: F=N'C/16777216 Hz,
where N is the decimal equivalent of the
familiar two byte (16 bit) frequency
number and C is the clock rale.
Data is entered as a two byte number
(that is, as two bytes in consecutive
locations and is, again, linearly related to
frequency rather than pitch. Pitch is the
term we use to describe the sensation of
music at frequency, in which the basic
units are notes and tones. Two notes, for
example C and D, will have a much
greater difference in frequency at a high
pitch than at a low pitch, which means
that errors may creep in at the bottom end
of the 64's octave scale, where small
numerical differences can have a large
effect on pitch.
Since the resolution is so good —
65536 values covering a range of 90-plug
notes — accurate tuning is easy, if
somewhat tedious. The most accurate, if
least efficient, method for entering
frequencies is to specify the frequency
data for each note to be used in a program
as one of two items in a DATA statement.
(The relationship between the two byte
representation of frequency and a single
number value is given by FN=256'HB+LB,
where FN is a frequency number and HB
and LB are the equivalent high and low
bytes in decimal). This method makes
overall tuning difficult and it is often the
best compromise to actually calculate
ioo reh tsittmtttstttttttmmsMss
110 REH I LISTING 5 I
120 REM t WAVEFORM ADDITION I
130 REM t t
140 REM IPULSE WIDTH VARIATION SHOMNt
150 REN I t
160 REN IBIT5 SET ON W/FQRH RE6ISTERI
170 REN ! t
180 REN IINPUT AND COMBINE WAVEFORMS*
190 rem mtmmmmmttttmmi
200 POKE 54296,15
210 POKE 54272,75;P0KE 54273, 34: POKE 5
4274,255
220 POKE 54277,0: POKE 54278,240
230 PRINT'tCLEARl"
240 PRINT ■ I HOME 1 C DOWN K DOWN H DO WN ] I DO
HN ] I DOWN 3 [ DOWN ] t DOWN ] [ DOWN ] I DOWN J I DOWN
UDO
WN ] E DOWN ] [ DOWN } C DOWN ] E DOW N ][ DOWN H DOWN
1 [ DOWN ] [ DOWN I [ DOWN ] [ DOWN ] ENTER 2 NAVEF
DftflS
(0 OR 1*T,2=S,3=P,4=N)"
250 INPUT A,B
260 IF A<0 OR A>4 OR B<0 OR B>4 THEN P
RINT'rUPKUP][UPKD0NNKLEFT][LEFT] , :6
0T02
40
270 POKE 54276,8:P0KE 54276,0
280 A=-16I(A>0U2 A (A-1):B=-16MBM»I2*
(B-U
290 K=0
values from a core of one octave's worth
of data in your program, including a
tuning variable in the calculation.
Program 3 plays a tune using frequencies
entered as DATA, while Program 4 uses
core data-to calculate frequencies. Note
how easy it is to tune Program 4 by just
changing a single parameter in the
calculation.
Frequency data is entered as a low byte
and a high byte in consecutive locations
— the low byte allowing fine tuning, the
high byte allowing coarse sweeping
through octaves. The range of values is, of
course, zero to 255 for each byte and out-
of-range values will — in this and all other
cases — either return an error and stop
the program or interfere with other
parameters (in the case, for example,
when you POKE the volume register with
a value greater than 15 you will interfere
with the filtering parameters).
After frequency comes waveform.
There are four 'pure' waveforms: triangle,
300 IF A=64 OR B=64 THEN K=l
310 POKE 54276, (AORBI*!
320 PRINT " E CLEAR ] ■ : TAB (240 > ; -WAVEFORM
N0:'iA; , f;B; , *-;l;'=-;(A0RB)+l;
330 IFPL=1THENF0RPW=0T015:P0KE54275,PW
:PRINT , IH0MEr;TAB(255);'PW";INTf(PW+:
) 110
0/16);"Z":NEn
340 B7=(A=128)0R(B=128>
350 B6=(INT((INT((A0RB)/64))/2)O(INT(
(A0RB>/64)/2>)
360 B5= ( I NT ( ( INT ( ( AORB) /32) ) /2)< > C I NT (
(A0RBW32)/2H
370 B4= (INT ( ( AORB) /32) <> ( ( (AORB! /32) > >
380 PR I NT • E DOWN H DOWN ] E D0WN3 E DOWN ) C DOW
N ][ DOWN ][ DO WN U DOWN 1 [ DOWN ] ■
390 PRINT "WAVEFORM REB: BIT 7.BIT 6.B
IT 5.BIT 4"
400 PRINT •
■
410 PRINT" CRVSONJ ";AB
S(B7);" ";ABS(B61;" ';ABSIB5);'
";AB
S(B41
420 PRINT "
430 IF K=0 THEN 460
440 F0RW=0T015:P0KE54275,W:PRINT"[H0HE
]"i"PW";INT((W*I)H00/16);T
450 FOR P=l TO I00:NEUP,W
460 PRINT"[H0HEJ";TAB(130);"HIT A KEY
TO 60 A6AIN"
470 6ETA$:IFA$=""THEN470
480 60T0240
Program Listing 5
sawtooth, pulse and white noise. They can
be 'mixed' but the effects are
unpredictable, since the waveforms are
not simply added but logically ANDed.
Thus 16, 32 and 64 produce, respectively,
triangle, sawtooth and pulse waves when-
POKEd to the relevant location. Adding 16
and 32 (or performing a logical OR on the
values) produces a very thin pulsefas a
result of logically ANDing the waves, but
adding 16 and 65 actually produces a fairly
rich composite waveform with a shape
rather like the top half of a sine wave
(Program 5).
If pulse is chosen, as in the above
example, it is necessary to set a pulse-
width or duty cycle. There are 4096
possible values set by POKEing a byte and
a nybble into consecutive locations. The
byte has a range of zero to 255 and the
nybble a range of zero to 15. The reason
for setting different pulse widths is that
pulse width does affect timbre, because
the harmonic content of a pulse wave at a
given frequency depends on duty cycle. A
value of zero POKEd into both registers or
a value of 4095 (that is, 15 in the high
nybble and 255 in the low byte) wil give a
constant DC output. A value of 2048 {eight
in the high nybble and zero in the low
byte) will give a square wave. It is worth
experimenting with combinations of
waveforms, as above, using different
width pulses plus triangle or sawtooth
waves, since the logical ANDing involved
works on the harmonics, cancelling out
some and magnifying others.
Setting the waveform should be the
last POKE in any series of commands,
because the waveform registers are also
the control registers for any channel. The
values for waveforms are as given above
plus 128 for noise, but the sound will only
be heard if bil zero of the control register
is set to one. This is known as the gate bit,
and it triggers the start of the attack phase
of any sound. If it is set to zero, the sustain
phase of the note terminates and it enters
its release phase. Thus, to start a note
playing, for instance a sawtooth wave, the
location corresponding to the relevant
waveform/control register must be
POKEd with 33. To turn the note off, POKE
the same location with zero on any even
number. Thusa noteduration isgoverned
by the attack time (given in the table
above), plus the proportion of the decay
time it takes to reach the sustain level
(given by decay time * (1 — sustain level),
where decay time and sustain level are the
figures given in the table above for the
relevant values POKEd into their
assocaited locations), plus the duration of
the sustain phase, plus the release time
(given above). Sustain duration is set by
means of a delay in the program. This can
be almost any command, but typically, a
FOR. . .NEXT loop is used. Other common
delay techniques use the 64's internal
clock to measure a fixes amount of time
(the variable Tl holds clock data), a WAIT
command to detect a particular event or a
GET command to detect the presing of a
key. Problems sometimes occur with the
64's keyboard buffer, which should be
cleared by a POKE 198,0 instruction if a
key is pressed to initiate a note.
The remaining sound locations will be
dealt with in a future episode of the series,
after which we'll move on to machine-
code and a discussion of some theoretical
aspects of music-making. Meanwhile, you
should note that all locations and data
used in the sample programs have been
ascribed to variables to simplify the actual
POKEs. This not only makes the program
easier to understand, but it also saves
time, since the 64 deals with variables
quicker than it does with numeric
constants. To finish. Program 6 shows
what can be done with the 64's filter
facility as a taster of things to come.
SEARCHING FOR 6.LISTIN66.LISTIN
READY.
100 REnusnmmttmmttnmttMi
110 REM Utlllt LISTING 6 Ittttttltt
120 REMIimitFILTER EFFECTSttttttttt
130 REMuuuuutttumtuuuism
140 POKE 54296,31:P0KE 54277,64: POKE
5427B,12B:P0KE 54293, 0: PRINT CHMU47I
150 FOR R=0 TO 240 STEP 240:P0KE 54295
160 PRINT CHR$(19);TAB<!0);"RESONANCE"
;R
170 READ A.B
180 IF A=0 THEN 230
190 POKE 54273.A: POKE 54272.B
200 POKE 54276,33
210 FOR F=0 TO 255 STEP 2: POKE 54294, F
: NEXT
220 60T0 170
230 FOR P=l TO 800: NEXT: POKE 54276,0
240 REST0RE:NEXT
250 DATA 19,63,21,154,17.37,8,147,12,2
16,0,0
Program Listing 6
Whatever your interest in the
Commodore range of computers
and peripherals, you simply cannot
afford to miss a single issue.
SUBSCRIPTION RATES ^^^HHH^H^^H
£16.60 for 12 issues U.K.
£21.50 for 12 Issues Overseas Surface mail
£57.00 for 12 Issues Overseas Air mall
Send Ihis form with your remittance to:
INFONET LTD., Times House, 179 The Marloues,
Hemel Hempstead, Herts. HPt IBB.
* & & & \ v<
HAVE YOU EVER WANTED TO GET INTO
communications? Would you like to get
in touch with other Commodore owners?
Well, Your Commodore, together with
Compunet, are pleased to announce the
start of Club 128, and give you a chance of
a special membership offer.
Club 128 will appear on Compunet as a
'free access' area open to all CNET
subscribers.
The club will be the focal point for a
'serious' users of Commodore
computers, hence the '128' affiliation. The
128 doesn't mean that owners of C64s
can't join, in fact the club is open to a
Compunet members though only
'serious' users are expected to make a
great deal of use of it.
Many sections of Compunet are due
(o be 'pulled in' to this online area?
int luding tlx 1 'Brief< .(-.<■ business •>«'» lioil
that is already in existence.
Your Commodore will have a
magazine section within the club area
where you will be able to find news and
the latest programs that are published in
the Magazine.
The Offer
I
So what do you get and what does it cost? |
Your Commodore is offering a special |
membership to the Club for £69.99
(int VAT and P&P in the UK) including:
A Commodore 64/C128 Communications
modem (worlh £79.99)
A three month COLD subscription to
Compunet (worth £15.00)
A six month subscription to Your
Commodore
• PLUS '
£10.00 of discounts on selected business |
and communications software, including j
sofiware for accessing Viewdata and |
Electronic Mail services such as Prestel |
and Telecom Gold.
In order lo take advantage of this
special offer you simply need to send a
l\l / A
I i enclose a cheque made payable to Club 128 lor £69.99 for my Gold membership*!©
| Compunet. Commodore modem and six month subscription to Your Commodore.
I
I
I Name
I
I Address
I
I Postcode -
I
I Please allow at least 28 days tor delivery. Order should be sent to: Club 12BCompu-
cheque or Postal Order made payable to ™««.ww.« "»*"<"7>; « — »-y - ~— ■ " " - J ,
Club 128 to the address on the below "« Telesemces Ltd. 7-11 Minerva Rd. London NW10 6HJ.
oroi
Save your fingers a lot of
work with our new software
service.
IT'S THREE O'CLOCK IN THE MORNING.
You sit at the computer keyboard having
just finished a marathon typing session
entering one of the superb programs
from Your Commodore. Your fingers
reach for the keyboard and press the
letters R. U and N/. You sit back
expectantly and. . .nothing happens.
Well, I'm sure that we have all had
problem before now. When it does
happen it's a matter of spending hours
searching through the program for any
typing mistakes. No matter how long you
look or how many people help you, you
can usually guarantee that at least one
little bug slips through unnoticed.
Here, at Your Commodore, we pride
ourselves on the quality of listing that we
print. Unfortunately, this usually means
that they are also very long, thus taking
longer to type in and leaving more room
for errors. All of the listings in Your
Commodore are taken straight from a
printout of working programs, it is
therefore very unusual for errors lo
appear in the magazine.
Because of the length of our programs
we do gel a large number of requests from
readers who would like us to put specific
SOFTWA& for
programs on tape or disk for them.
Obviously this is very time consuming and
means that we can't spend as much lime
working on the magazine as we would
like.
We are therefore proud to announce
the start of the 'Your Commodore Soft-
ware Service'. Most of the programs from
each issue of the magazine will now be
available on a single cassette for a price of
just £4.00. We will not be making disks
available since they would have to be a lot
more expensive and more difficult to
post. This shouldn't cause you any
problems though as none of the programs
will be protected and it will be a simple
mailer to save the programs lo disk
yourselves.
All programs on the cassetie will be
saved using a tape turbo routine.
However, we cannot guarantee lhal all
programs will work correctly with this
turbo routine present. We therefore
recommend lhal before you use any of
ihe programs you make a copy of the
programs on your own cassette or disk
and use this version of the program not
the original.
PLEASE COMPLETE IN BLOCK CAPITALS
All cheques/postal orders should be made payable to:-
ARGUS SPECIALIST PUBLICATIONS LTD
ORDER FORM
I would like to order the following cassettes: (please tick box]
APR '86
YCAPR86
£4.00
MAY '86
YCMAY86
£4.00
JUNE '86
YCJUN86
£4.00
JULY '86
YCJUL86
£4.00
I enclose a cheque/postal order for £
NAME
ADDRESS
POSTCODE
All orders should be sent to :-
YOUR COMMODORE SOFTWARE, READERS SERVICES, ARGUS SPECIALIST PUBLICATIONS,
WOLSEY HOUSE, WOLSEY ROAD, HEMEL HEMPSTEAD, HERTFORDSHIRE HP2 4SS.
Please allow at least 28 days for delivery.
v ••• ••• v .-. V
ORDEAL
YOUR CITY IS UNDER
attack from the alien
Honker'. Your mission is to
rescue all of your people
from the city before 'Honker'
reaches it. Should he reach it,
then you can wave good bye
to your three lives.
There may seem to be
nothing original about the
game but there are a couple
of things that make it worth
looking at. Firstly it is fun to
play presented. Secondly.
John Fletcher has proved that
not all good games need to be
written totally in machine
code. Lunar Ordeal is written
mainly in Basic.
A joystick in port 2 is
needed to play the game.
Variables
Scoring Variables and strings:
Sc,SC$,Sl$.CA,N$,C,SN$.Q$,\
Module Movement:
W,H,VV,Vl,H1,VO,HO,U,D
Miscellaneous:
L — Lives
LV — Level
KY — Joystick Movement
FU - Fuel
XX=1
PROGRAH: LUNAR
ORDEAL
0 DIM SNt(10),SCU0)
iFOR T«l TO 10
:SN$(T>"NQ ONE YET !!"
lSCm«500-(20!T)iNEXT
1 IF PEEK 149152)0120 THEN P
DKE 5328i p 1:P0KE 53280,1
(6QSUB 16000:
2 SYS 49152:n-l:L»3iLV«l
tU'-.5:D-0i60SUB 16100
iGOSUB 30:XX-0
: SCI- " 000000'
3 PRINT CHR$(8):P0KE 56325,72
:60SUB 100Q0:CA=0
iSEI^OOOOOO'iPOKE V+21,
255
10 PRINT*£CLEAR3*iFU«20
11 PRINT" [H0ME3 "TAB (13) "
[GREEN ] FUEL iCRVSON,
YELL0W3) ) )) ) >) ))))>)))>)>
J) -
12 PRINT " C HOME, WHI TE3LEVEL " ;
LV
13 PRINT , [H0r1E,D0MN,C63
munmnnmnmni
mtttmnmv
20 POKE 53281, OiPOKE 53280,0
iPOKE V+31,0
25 Y=1904iYY=56176
.'POKE 2040,240
30 V»5324B:PQKE V+1,63
:P0KE V,155iP0KE V+21,63
iPOKE V+45,2:P0KE V+39,1
:P0KE V+41,11
31 POKE V+28,255;P0KE V+37,2
:P0KE V+3B,7
40 POKE V+2, OiPOKE V+3,80
(POKE V+4 ( 0iPQKE V+5 f 120
iPOKE V+6,0:P0KE V+7,160
.'POKE V+8,0
41 POKE V+9,190iP0KE V+10 t 10
:P0KE V+11,213
42 POKE V+40,9
50 POKE V+27,255:P0KE V+23,6
i POKE V+29,6:P0KE V+44,6
:P«56156
55 IF XX-1 THEN RETURN
56 POKE 53272, (PEEK <53272l AN
D 240>+12iPQKE V+17,
PEEK(V+17)0R 64
60 FOR I»0 TO 39i POKE 56216+
I,8:P0KE 1944+I ( 43iNEXT
IPRINT-CH0ME3"
61 FOR I«0 TO 39: POKE 56256+
I,8tP0KE 1984+1 , 44: NEXT
69 PRINT TABtl7) "CD0MN19,
VELL0W]>CSPC3]>-
70 PRINT TAB (17) "C YELL0H1 )
[C8]'[BLUE3tt|[C81(
[YELL0M]) -
71 PRINT TAB(17) "[YELLOW])
, , liCYELLOH]) ■
72 PRINT TAB(17> "CRVSON,
YELLOW [CB,RVS0FF](,„'
C RVS0N, YELL0N 3 ) I R VS0FF ] "
75 POKE Y+16,45iP0KE YY+16,1
:PQKE Y+24,45:P0KE YY+24,1
•POKE V+30, OiPOKE V+31 0
76 PRINT"[RVS0N,liHITE]SC0RE
: "SC$j : PRINT" CH0ME3 "
90 FU=20:M-130:SYS 49152
! VV=65 : H-l 35t V0»0 : HO-0
iPOKE 54296,15
iPOKE 54278,240
100 V1=.1;H1=0
104 :
105 REM iltlltt* MAIN LOOP
ttfttltfttftt
106 i
110 KY*PEEK (56320)
111 POKE 1043+FU.32
:P0KE P,INT(RND(1)I16)
115 IF RND(1)).7 THEN POKE Y
♦16,45;P0K£ Y+24,45
120 IF KY=126 AND FU>0 THEN
V1=U:FU»FU-.5:PQKE 54273,8
(POKE 54276,129
:P0KE V+21, 127
125 IF FU*0 THEN PRINT" [HOME ]
"TAB(22) H [RVS0N,HHITE30UT
OF FUEL"
130 IF KY-123 THEN HI-. 2
140 IF KY*119 THEN HK2
150 IF KY-127 THEN V1«.1;H1«0
:P0KE 54276,0
160 IF H1=H9 THEN 60T0 1B0
170 H9=H1:K=SGN(ABS(H9)U129
rPOKE 54273,39
iPOKE 54276, K
180 V0=V0+V1:H0=HQ+H1
200 IF VV<50 THEN V0=ABS(VQ)
210 IF H<20 THEN H0=ABS(H0)
220 IF H>240 THEN HQ=-ABS(H0)
250 VV*VV+V0:H-H+H0
260 POKE V,H:P0KE V+l.VV
:P0KE V+12,HtP0KE V+13,
VV+14
320 Z=Z+.5:IF Z«l THEN POKE
2045,243
321 IF Z«2 THEN POKE 2045,242
:Z>0
330 IF INT(VV)»200 AND INT (H
)>172 AND INT (H)< 177 THEN
SOTO 1000
340 IF PEEKIV+31)=1 THEN GOT
0 2002
350 IF PEEK (V+30) >2 AND PEEK
(V+30KB THEN 60T0 2000
360 IF PEEK(V+10)=140 THEN 6
0SUB 3000
500 IF RND(1)).7 THEN POKE Y
+24,46:P0KE Y+16,46
510 POKE V+21, 63
520 GOTO 100
997 i
998 REM limit LANDING ROUT
INE ttsmti
999 :
1000 FOR T*690 TO 715
iPOKE T,0:NEXT
: POKE 54276, OiPOKE 54273,
30:
1001 PRINT" [HOME, D0MN2I"
|A*-"[C4,C5,CB,«HITE]"
:F0R A«l TO BiFOR B=l TO 4
:PRINT TAB(17)MIDI(AI,B,
i);
1002 PRINT "CUP3LANDED ! "
1003 FOR T"l TO 60:NEXT T,B,A
1004 POKE V+31,0: POKE V+23,
12B:P0KE V+29,128
iPOKE 54278,3
1005 FOR I»l TO FUI3:CA=CA+I
:S$«STR$(CA):S1I»RIGHT$(S
I,LEN(SJ)-1):P0KE 54276,32
1006 SCMLEFTKSEJ,
6-<LEN(Sll)))+Slt
: POKE 1043+FU,32:FU»FU-.3
1007 POKE 646,I:PRINT'[H0HE,
D0HN24I > TAB16)SCI;
1008 POKE 54276, 17:NEXT I
:P0KE 54296, OiPOKE 1043.32
:PDKE 1044,16
1010 POKE Y+16.32
: POKE Y+17,46:F0R T«l TO
150:NEXT
1015 POKE Y+17,41
77
Program Breakdown
0 — Variables for high score (able
1 — Check if machine code is in memory
2-3 — Go to title page routine
10-90 — Print screen, set up sprites and variables
110-520 — Main loop for game
1000-1008 — Routine for landing and scoring
1010-1041 — Animate people going into lifts
1059-1090 — Bring mother ship down to collect module
2000-2050 — Routine for hitting something, deduct life
3000-3030 — Honker has reached people, end of game
5000-5030 — Game over, check for high score
5040-6050 — Input name for high score, calculate place,
print names
1000-1068 — Title page
16000-16111 — Read data into appropriate memory
locations, set sprite speeds and directions.
17000-17040 — Data for machine code
20000-20048 — Data for sprites
20060-20065 — Data for user defined graphics.
: POKE Y-23,46:F0R TM TO
150: NEXT
1020 POKE Y-23,41
:P0KE Y-63,46:FQR T-l TO
150:NEXT
1021 POKE Y-63,41
:F0R T-l TO 150:NEXT
1030 POKE Y+24,32
: POKE Y*23,46:F0R T»l TO
150: NEXT
1035 POKE Y+23,41
:PQKE Y-17,46:F0R T«l TO
150;NEXT
1040 POKE Y-17,41
: POKE Y-57,46:F0R T=l TO
150: NEXT
1041 POKE Y-57,41
:F0R T-l TO 150:NEXT
1059 POKE V+21,129
:P0KE V+45,1
1060 POKE V+14,162
:P0KE V+15,0
1070 FOR 1=0 TO 220
:P0KE V+37, I:P0KE V*15,I
:NEXT:P0KE V, 174
1080 FOR 1=220 TO 17 STEP-1
: POKE V*37,I:P0KE V+15,I
:P0KE V+1,I-16:NEXT
1090 LV«LV+1:P0KE 56325,
50-(LVU.5>:6DSUB 16100
:60T0 10
1997 :
1998 REHIIlim CRASHED ROUT
ine turns*
1999 :
2000 IF PEEK(V*30>«65 THEN P
OKE V*30,0:GOTO 300
2001 IF PEEK(V+30)»0 THEN 60
TO 500
2002 FOR T=690 TO 715
:P0KE T,0:NEXT
:P0KE 54276,0: POKE V+38, 2
:P0KE V+39,7
2003 PRINT"tHQME,D0WN2]"
iA$='(C4,C5,C8, WHITE]"
:F0R A«l TO 8:F0R B=l TO 4
:PRINT TAB(17)MDI(At,8,
2005 PRINT"[H0NE]"TAB(17)'
[DQWN23CRASHED!"
2006 FOR T»l TO 70: NEXT: NEXT
:NEX.T:L-L-1
2010 POKE 54276,128
:PQKE 54277,59
:P0KE 54278,14
:P0KE 54273, 3:P0KE 54272,2
2015 POKE 54276,129
:P0KE 2040,246
IFOR T=l TO 200:NEXT T
2039 PRINT TAB(17)"[DQWN,C7]
LIVES:"|L
2040 IF L=<0 THEN 5000
2050 FOR T=l TO 1000:NEXT
:G0SUB 16100:POKE V+30,0
:P0KE V*31,0:GQT0 10
2997 :
299B REHHIli HONKER HAS HAD
E IT mist
2999 :
3000 FOR T«690 TO 715
iPQKE T,0:NEXT
:P0KE 54276, 0:F0R D=l TO 3
3001 PRINT"[HOME ( D0WN3]"
:A$='[BLACK,C4,C5,C8,
WHITE] " : FOR A-l TO 4
:F0R B«l TO 5:PRINT HIDK
A$,B,1>|
3002 PRINT"[UP]DH NO! HONKER
HAS MADE IT TO YOUR PEOP
LE";
3003 FOR T»l TO 60
:NEXT T,B,A,DiL«L-l
:IF L«<0 THEN 5000
3010 PRINT TAB(15)'tYELLQN3
ONE LIFE LOST. LIVES i'jL
3020 FOR T«l TO 2000: NEXT
3030 GOTO 10
4997 t
4998 REMtttMH GAHE OVER
tmtut
4999 i
5000 FOR T-690 TO 715
:P0KE T,0:NEXT
(FOR TM TO 90
:PDKE 54276, 0:P0KE 54273,
30
5001 POKE 646,INT1RNDU)I16>
SPRINT" CH0ME1 "TAB ( 16) "
[DOWN23GAME QVER!":NEXT T
5004 POKE V+31,0:P0KE V+21,0
5010 PRINT" [CLEAR, DOWN, WHITE]
YOUR FINAL SCORE WAS';CA
5020 PRINT" [D0WN1AND MANAGED
TO 6ET TO LEVEL "jLV
:F0R T»l TO 5000:NEXT
:P0KE 198,0
5030 IF CA<SC(10)QR CA=0 THE
N 5080
5040 OPEN 1,0
5041 POKE 53281,3
:P0KE 53280, 3:PR1NT"
[CLEAR , D0WN7, RIGHT7, BLACK]
TYPE IN YOUR NAME PLEASE'
5045 PRINT"[D0WN,RIGHT9,SPC3
13 LETTERS NAXIHUH 1
5046 PRINT TAB(12)'[BLUE,
D0WN3]
CLEFT13]";
5047 INPUTI1,N$:IF LEN(NI)>1
4 THEN CLOSE 1:60T0 5040
5050 SN$(10)=N»:SC(10)=CAi
5055 C*0:FQR T-l TO 9
5060 IF SC(T+1)>SC(T)THEN W=
SC(T+1):SC(T+1)=SC(T)
:SC1T)=W:G0T0 5076
5070 NEXT: IF C»l THEN 5055
5075 60TD 5080
5076 Q*«SN*(T+l)tSNI(T+l)=SN
• (ThSNI(T)»MiC-l
:60T0 5070
5080 POKE 53280,0
:P0KE 53281,0: POKE 53272,
28
5091 PRINT" [CLEAR, DOWN,
RI6HT2,WHITE]-[YELL0N,SPC]
FREEKY PLAYERS ALL TIME
BESUSPC, WHITE]-'
5092 PRINT" C&REEN]
lUIUIltUUUSUUtull
tltltlltltt"
5095 FOR T«l TO lOiPOKE 646, T
:PRINT"[D0WN,RIGHT5]"T(
SN« (T) TAB t25) SC (T) : NEXT T
6000 PRINT" CH0HE1 "TAB (4) ■
[D0WN24,WHITE]PRESS ANY
KEY TO PLAY AGAIN"
6001 CLOSE IiH'OiDE-O
6010 TT«PEEK(197)
78
:IF TT-64 THEN DE=DE+1
6015 IF DE=400 THEN DE=0
:G0T0 2
6020 IF TT<>64 THEN GOTO 2
6050 GOTO 6010
9997 i
9998 RE* ttttflt TITLE PAGE
lltltll
9999 :
10000 POKE 53291,1
■•POKE 53280, 1 : PRINT"
[CLEAR, C3]"iP0KE 2040,240
:PQKE V+39,14
001 POKE 53272,21
i POKE V+17,155sP0KE V+37,5
:POKE V+38,13sCA»0
10010 PRINT TAB(2)"CUP,SU,
SC2,SI,SPC15,SU,SC4,SI]
10011 PRINT TA8I2PESB, RVSON,
SPC2,RVS0FF,SB,SPC15,SB,
RVS0N,SPC4,RVS0FF,SB]
10012 PRINT TAB(2)"tSB,RVS0N,
SPC2,RVSDFF,SB,SPC15,SB,
RVSON , SPC , RVSOFF , SU, SI ,
RVSON.SPC, RVSOFF, SB]
10013 PRINT TAB(2>"[S8, RVSON,
SPC2,RVS0FF,SB,SPC15,SB,
RVSQN,SPC,RVS0FF,SB2,
RVSON, SPC, RVSOFF, SB]
10014 PRINT TAB(2) "[SB, RVSON,
SPC2,RVS0FF,SJ,SC3,SI,
SPC11, SB, RVSON, SPC, RVSOFF,
SB2,RVSQN,SPC,RVS0FF,SB]
10015 PRINT TABI2)"[SB,RVSQN,
SPC6,RVS0FF,SB,SPC11,SB,
RVSON , SPC , RVSOFF , SJ , SK,
RVSON, SPC.RVSOFF, SB]
10016 PRINT TAB(2>"[SB,RVSQN,
SPC6,RVS0FF,SB,SPC]U N
A RCSPC3, SB, RVSON, SPC4,
RVSOFF,SB,SPC]R DEAL
10017 PRINT TAB(2)"tSJ,SC6,
SK,SPC11,SJ,SC4,SK]
10020 PRINT TAB(3)"[D0NN,C2]
BY JOHN FLETCHERtSPC2](C)
19B5 AGE 15[SPC,BLUE3'
10021 PRINT ■ CDDHN]
TRY TO LAND ON THE PAD
AT THE BOTTOM OF"
10022 PRINT'THE SCREEN BEFOR
E 'CRED1H0NKERCBLUE3
• ATTACKS YOUR"
10023 PRINT-PEOPLE . SHOULD
HE ACHEIVE THIS THEN YOU"
10024 PRINT TAB42) "HILL LOSE
ALL THREE OF YOUR LIVES."
10025 PRI NT " CDOHN , SPC ] CONTROL
:- JOYSTCK IN PORT TMD"
10027 PRINT" UPtSPC3]» MAIN
[SPC23THRUST (USES FUEL)"
1002B PRINT" LEFT * LEFT
CSPC2]THRUST[SPC5]"
10029 PRINT" RIGHT" RIGHT
THRUSTCSPC51 -
10055 PRINT TAB(9) "[BLACK,
DOWN]PRESS ANY KEY TO PLA
Y 1
10058 PRINT'tSPC, DOM, BLUE]
r HC SPC v RED] * HONKER ' "
10060 TT«PEEK(197)
:IF TT-64 THEN DE»DE+1
10065 IF DE«700 THEN DE=0
I POKE V+21,0:GOTO 5080
10066 IF TT<>64 THEN RETURN
10067 A1=A1+1:IF Al=15 THEN
POKE 2045,243
10068 iIF Al-30 THEN POKE 20
45,242:A1«0
10100 GOTO 10060
15000 :
15001 REN Mitt INTIALISATIO
N£SPC2]l«m*i
15002 :
16000 PR INT ■ [CLEAR 3 "TAB ( 1 2) a
[D0MN11,BLACK]PLEASE WAIT
i ■
16002 FOR 1=0 TO 90:READ A
:POKE 49152+1, AiNEXT
:SYS 49152
16010 FOR 1=2041 TO 2045
:PQKE I, 241: NEXT
iPOKE 2040,240
:POKE 2045,242
:POKE 2046,244
16020 POKE 2047,245
16050 FQR K=0 TO 6
:FOR J=0 TO 63: READ A
:P0KE(240+K)I64+J,A
: NEXT J,K
16051 POKE 56334,
PEEK(56334)AND 254
:PQKE 1, PEEK (HAND 251
16052 FOR 1=0 TO 511
iPOKE 12288+1, -
PEEK (53248+1): NEXT
16060 FOR 1=0 TO 95: READ A
:POKE 12568+ I, AiNEXT
16061 POKE 1 , PEEK ( U OR 4
iPOKE 56334, PEEK (56334) OR
1
16100 POKE 690,2iP0KE 691,0
:POKE 692,2:P0KE 693,0
iPOKE 694, 3i POKE 695,0
:POKE 696,1
16101 POKE 697,0:P0KE 698,20
: POKE 699,0
16110 POKE 706,255:P0KE 707,0
iPOKE 70B,1:P0KE 709,0
iPOKE 710,1:P0KE 711,0
16111 POKE 712,1:P0KE 713,0
iPOKE 714,1:P0KE 715,0
16299 RETURN
16997 :
1699B REN Iftttt MCHINE CODE
DATA tlltt
16999 :
17000 DATA 120,169,192,141,
21, 3,169, 13,141, 20,3,BB,
96,162,15,169,128
17010 DATA 141,61,3,141,60,3,
222,208,2,208,44,189,176,
2,157,208,2
17020 DATA 189,192,2,240,33,
16,12,189,0,208,8,222,0,
208,40,240,7
17030 DATA 208,19,254,0,208,
208,14, 173,60, 3, 20B, 9, 173,
61,3,77,16,208
17040 DATA 141,16,208,173,60,
3,208,3,78,61,3,73,128,
141,60,3,202,16,191,76,49,
234
19997 :
19998 REN HUH! SPRITE DAT
A limit
19999 :
20000 DATA 0,0,0,0,40,0,0,
150,0,2,85,128,9,85,96,9,
125,96,37
20001 DATA 255,88,39,255,216,
149,125,86,149,85,86,37,
85,88,10,170
20002 DATA 160,0,130,0,2,0,
128,8,0,32,32,0,8,32,0,8,
168,0,42
20003 DATA 0,0,0,0,0,0,0,0,0
20010 DATA 0,0,0,0,0,0,0,0,0,
0,0,40,0,10,95,192,37,93,
192,38,235
20011 DATA 112,37,159,176,
157,103,236,149,86,236,
159,94,220,158
20012 DATA 93,152,158,85,158,
37,182,222,37,93,185,39,
85,117,39,231,93
20013 DATA 9,219,84,9,85,88,
2,165,96, 0,10,12B,0
20020 DATA 0,112,0,1,248,0,3,
240,0,7,228,0,15,204,0,15,
224
20021 DATA 0,31,254,0,28,255,
128,28,255,224,28,251,240,
12,248,255,12
20022 DATA 24B,63,7,240,62,7,
224,60,3,192,56,1,128,48,
1,128,0
20023 DATA 1,128,0,1,128,96,
1,255,224,1,255,192,0
20030 DATA 0,112,48,1,248,56,
3,240,60,7,228,62,15,204,
127,15,225
20031 DATA 255,31,255,240,28,
255,192,60,255,0,110,64,0,
207.32.0,15
20032 DATA 152,0,7,240,0,7,
224,0,15,192,48,24,96,48,
48,48,112
20033 DATA 96,24,224,96,13,
192,62,7,128,31,131,0,0
20040 DATA 1,57,0,1,57,0,2,
56,128,2,124,128,2,56,128,
1,57,0,1,17,0,0,40,0,0,16,
0
20041 DATA 0,0,0,0,0,0,0,0,0,:
0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0
20042 DATA 0,0
20043 DATA 13,195,112,13,195,
112,13,195,112,13,195,112,
13,195,112,13,125,112,53
20044 DATA 85,92,53,105,92,
53,170,92,53,170,92,213,
170,87,245,85,95,229,85,91
20045 DATA 239,125,251,251,
125,239,59,255,236,15,255,
240,12,60,48,12,0,48,55
20046 DATA 0,220,213,195,87,
0,0,0,0,0,8,0,2,8,8,0,8,
32,0,42,128,0
20047 DATA 174,160,2,239,128,
42,255,160,11,255,224,2,
255,224,2,255,128,2,190
20048 DATA 0,8,186,128,0,184,
32,0,40,0,0,32,0,32,32,0,
0,0,128,2,0,2,0,0,0,0,0,0,
0
20050 :
20051 REM tttfttttt UDG DATA
smsftttt
20052 :
20060 DATA 3,3,15,31,63,126,
124,124,192,192,224.240,
248,126,62,62
20061 DATA 255,63,15,15,7,7,
3,3,255,251,240,240,224,
224,192,192
20062 DATA 128,192,192,227,
244,248,248,248,1,3,3,199,
47,31,31,31
20063 DATA 204,204,204,204,
204,204,204,204,255,255,
85,85,34,0,0,0
20064 DATA 16,59,255,255,255,
255,255,255,255,255,255,
255,255,255,255,255
20065 DATA 153,90,36,24,24,
36,66,129,24,24,36,90,153,
36,36,36
clean on its errors.
number of lines were missing from ihe
instructions. The missing lines are
printed below.
HERE AT YOUR COMMODORE WE
pride ourselves in the quality of the
listings that we print. Obviously we try to
make sure that all programs are correct
but occasionally errors do slip through,
usually because they occur at stages of
production that are out of our control.
This is the page where we come clean
and give you details of errors that have
appeared in recent issues.
MACH
The author of this program made some
late changes to the actual listings. This
meant that the end addresses for each
part should have been altered. Unfor-
tunately we did not spot this. Below you
will find the start and end address for
each part. Don't forget you can save the
program from within the monitor with
the S command.
Monitor - $8200 to $8E75
Macro - $9000 to $9C30
Assembler - $9000 to $9DB8
Some people are also experiencing
problems with the .SER command in the
Macro program. It appears that any
labels generated do not increase in
numeric order, but rather graphic
characters are placed in the label. This
only happens on some machines and
does not effect the operation of the
program as each label is still unique.
However the author of the program is
looking into this to see if he can find the
problem.
March 1986
A couple of weird characters appeared
in the listing of Kung Fu Masters. The
characters should be the Commodore
key and the@sign when you see ri, and a
space when you see the a symbol. Also a
PROSRAM: K.FU. INSTRUCTIONS
U85I print-is tihe is tmi
Is REVOLUTION. Is G3R0UP
S DF [s E3VIL"
1186* PRINT'FIBHTERS JOINED
TOGETHER TO OVERCOME"
1137? PRINT'ANTTHIHG WHICH S
TANDS IN THEIR PATHS.'
11B98 PRINT* ts EjVEN t HE Is
EMPIRE'S TROOPS ARE FAILING
TO'
U9N prwretupn after *he
IR QUEST TO RID THESES"
1191ft PRIHT'EVIL FIGHTERS FR
ON THE COUNTRY . Is WW
11929 PRINT-HAVE TRIED BUT F
EH EVER RETURN TO TElL*
1193? PRINT'OF THE EVIL SRQU
PS HIDING PLACES."
!!948 PPINT-[c H3GNEVER, FDR
THE DEATH OF A FI5HTEM0U'
A couple of wierd symbols also
appeared in the Grid search listing.
Whenever 1 appears, replace it with a
space and when\ appears replace it
with a £ sigh.
April
Because we didn't have a working
Plus/4 we had to ask the author of the C-
16/Plus/4 character generator to
provide the listing. Unfortunately his
listing was incorrect. Below you will find
the lines that need to be changed.
PR06RAH: Cla CHAR .SEN
zi
1171 BEF FMCU)«FI6UMI2I
189? :^P: T E[i=65288:SC=!:SL=
4:BC=9:BL=4:CC=1:CL=7
U5I 2 IS= * " : FOR I « ! T06 : SE ADA :
ZZt«Z7$*CMMW EKE?!;CNRtift)
:298 D0lCETA»:L00P WILE W»
13N LOOP UNTIL MSTRiZZ^AI
192? PPINTSPCi2?) a 0 KULTI OF
2948 F0RR=i707:A=PEEKU48*8*
2158 D0:6ETA$:L00P UNTIL A$=
2218 D0:GETAi:L00P UNTIL A$=
■!' OR A*="N"
2288 DOaSET A$:L0CP UN'ILfi$=
*f "DRA$='N B
238? DC:5E' AlrLOOP UHTILA**
2538 DC :GET AS:L00P UNTIL Al
='T' OP M="D*
2598 FQRI=1T0LEN(FN$):P0KE5!
2848 PRWT'CMHITEl'RIGHTK 1
'♦STR$!I),2);'[BLAm=
Some people are also experiencing
problems with TOPMON in the same
issue. This is because you have to move
Basic before you RUN the program. The
POKES given to perform this move are
correct but if for some reason the
location before the new start of Basic is
not set to a zero you will get a syntax
Errors
in some issues. Here are the lines that
you may be having problems with.
error. Modify the given POKE command
to:
POKE43,0:poke44.32:POKEB191,0:NEW
and you should have no problems.
The author of the article '2 for the
C128' made a mistake with the position-
ing of the arrow in PROGRAM 2 line 220.
The arrow should point to the 66 not the
42.
May 198b
Unfortunately the gremlins crept into
the layout of the Programming the C-16
article. The last section of the program
SYNTHDATA was placed at the end of
the COMPILER by mistake. The
COMPILER should only go up to line
45150 and lines 20080 onwards should
follow line 20070 of the SYNTHDATA
listing. Also line 55020 of the DEMO
TUNES has a *,2' missing from the end.
Lines 50500 to 50530 are badly printed
PROGRAM: C16 DEMO TUNES
58588 DATALA , JOESTHEHE ,TH ,8 ,
VD^DE^GD^A.JOE^i.GO,
IA,J0E,PA,188,GQ,IA,HQVIS
58518 DATALA, J0E.C2, 345, 38,6
85,18,784,28,739,02,169,28,5
96
58528 DATAC2,383,38,784,18,7
39,28,778,02,262,28,643
58538 DATAC2,383,38,784 1 18,7
39,28,778,02,262,28,643
58548 DATAC2,453,38,739,18,7
78,48,798
In the same issue a 1 was missed from
the end of line 2780 of (he COMMS GEN
5 program in the Telcom 64 article. This
line should end with 371 NOT 37.
POLAR PETE suffers from a couple of
problems. Firstly a couple of digits have
been swapped in the POKE statement
thai you must enter before you RUN the
programs. This should start with:
POKE16384 NOT POKE 16483.
Also a line was badly printed in Pete
Load 3. The line should be:
2040 DATA141. 3.212.169,32.141, 2.212,96,
169,13.141.5.212.169.10.1727.
WORDPROK suffered from duplica-
tion. On page 71 the listing isduplicated
from page 70. You can ignore the listing
on page 71 and the very last line on page
70 that starts <> -128.
As far as we are aware these are all of
the problems in recent issues. Obviously
we are trying to get listings more
accurate each month. If in the meantime
you do have problems then please do
write in and we will deal with your query
as soon as possible.
C pmpufuart
TME ATARI AND^ SMASH HIT
Stuart
a package that makes games
design easier.
AFTER PLAYING YOUR THREE THOU-
sandth game of 'Blast the Alien' you'll
probably think that you can do more
with your C64 than just play games. Who
knows you may even get the urge to
write your own games to occupy
yourself? However, there is one very big
problem - programming. If you've ever
tried to move an object around your
C64's screen you will have found that it's
not quite as easy as the professional pro-
grammers make it look. What you need
is some sort of tool that takes the hard
work out of games design. Well Activi-
sion has come to your rescue with Game
Maker.
Game Maker is actually a number of
tools, each one is aimed at helping you
to design and write your games
program. The Scene Maker lets you
draw the background for your game.
Sprite Maker allows you to design the
characters that will appear on your
screen. Music Maker and Sound Maker
allow you to add music and sound
effects to your program. The Editor
allows you to 'write' a program that links
all the above parts together to form a
game.
Write is probably not quite the
correct word for the way in which you
write programs. You very rarely need to
actually type anything on the keyboard
as all of the programming commands
are selected from the screen with a
joystick. If the commands need any
parameters then these are also selected
with a joystick. For example if sprite
number one was a dog then you would
select the 'Sprite 1 is' command. The
computer would then get the catalog of
available sprites from your disk drive,
selecting the dog sprite is simply a
matter of moving the joystick until the
word 'DOG' appears in the window. You
have now told the computer that 'Sprite
1 is DOG'. Simple isn't it?
Some people may say that if you are
going to have to program the game
anyway why bother using a program
such as this? Why not just write your
program in Basic or machine code
instead? If we take a look at the example
following commands do this:
SPRITE 1 ANIMATION SPEED = 030
SPRITE 1 DIR * 064 RIGHT
SPRITE 1 MOVEMENT SPEED = 045
insiedUi it wtr irfftc u iuu* nunc c*OMpps
program that you build up over the first And t^'souj^rogram finished. Simple
few pages of the manual the reason (or isi
using a program like this should become
apparent.
Let's assume that we have used the
different 'Maker' programs to create a
dog sprite, a jungle background and a
piece of music, in this case the William
Tell overture (Wiltel). Now lets have a
look at a simple program. Firstly we want
to display (he background on the
screen. The instruction:
SCENE 1 IS (UNCLE 2
[his. JUI
would do this. JUNGLE2 is the name
used to save the scene on to disk. Now
let's add the DOG sprite at position
40,154 these are the X ami Y co-ordinates
on the screen. Firstly we need to select
the sprit^pd then position' it.
done will
This is
1 IS DOG
SPRITE
SPRITE 1 X POSITION = 040
SPRITE 1 Y POSITION = 154
Simple isn't it? Now let's animate the
dog and move it across the screen. The
isn't it? II we now RUN the program a
dog will run across our jungle scene
from left to right^^A
The reason for using a program like
this should now be apparent, ij is so
simple to use.
Obviously there are bound to be
limitations with a program like this. The
author of Game Maker can hardly be
expected to cater for every little effect
that every programmer will need. Some
f the major limitations are that firstly
ou can only have two screens to your
game and secondly, you can only have
eight sprites on the screen at once. If you
were writing the program in Basic or
Machine code you could have as many
screens as the computer's memory will
allow. You can also get more than eight
sprites on the screen at once through
careful programming.
Even so it is possible to write a wide
variety of 'games' with this program.
Games provided on the disk with the
program range from 'Chopper, a
shoot'em up game to an animated
Christmas card, complete with clock-
work soldier and jack in the Box.
^OOO
i i
:
The Editors
Obviously the quality of the games that
you design with this program depends
very much on how good the various
Editors are. Well you will be pleased to
know that they are all excellent. In fact
some of them are better than some stand
alone programs that are available.
Because the programs are so powerful it
is probably worth dealing with each one
in turn.
Scene Maker
This is the program that allows you to
design your back drops. If you have ever
wave
•ft
dec
sus
rel
h
fr<i
1 1
SP4
*
h
PIS
©
o
o
sawtooth tie
ooo rer-eets
015 O nuHber
000
015
O delay
OOM 000
016 frane 00J^
135 US«d 0O1
hear frame
hear sound
constant
000 equalizer
\tf ac or.
quiet
000 o## BD on
000 00 00 00
dur
02M
015 25M
If . %
o p £ J
, w i i * I i
— « 2 5 <* * a
■ els
used a graphics program then you will
recognise most of the available
commands. Draw allows you to sketch
on the screen in one of the available
colours. You can have four different
colours on the screen at any one time.
All drawing is carried out via the joystick.
The functions of Line, Box and Circle are
quite obvious and Fill allows you to
colour in areas of the screen. It is poss-
ible to copy areas of the screen from one
position to another as well as Zoom in on
a specific area so that it is easier to add
fine detail.
One interesting thing about this
-program is the way that the menu of
commands covers the top half of the
screen. The bottom half of the screen is
used for drawing. My first thought on
trying to draw my own background was
how on earth do you draw on the lop"
half of the screen? Then I realised that
the Move command scrolls the bottom
window so that you can see any area of
the background scene. If you wish to see
the whole picture, the View command
turns off the menu.
Scene Maker is extremely well
designed and very simple to use.
Sprite Maker 0m
As you are no doubt aware, probably (he
most important pari of any game is the
sprites. These are theobjects thai move
around the screen, shooting at you,
killing you and generally getting in your
way. Obviously a good game therefore
depends on good quality sprites which
are clear and well animated. The Sprite
Maker program is extremely powerful,
in fact I would go as far to say that it is
one of the best sprite editors I hafle
come across and i( would stand up well
on its own.
Sprite maker has provision for either
multi-coloured or single colour sprites.
Horizontal and vertical magnification is
provided and up to four sprites can be
placed edge to edge to create one large
object that can be easily manipulated.
Once you have defined your basic sprite
you can then go on to alter it slightly and
store these new 'pictures' on a different
frame. You can then run through the
frames, like a piece of film, and make
your masterpiece animate.
All of the details about the size of the
sprite and the number of animation
frames that It has are stoned with the
sprite when you save the sprite to disk.
Making Music
The music maker allows you to compose
your own tunes for inclusion in your
games. Music is entered under joystick
control on to what is referred to as a
musical sheet. This consists of three
musicalstaves upon which you can place
the note lor one of the Three available
voices. Thirteen different instruments
are provided ranging from snare to
« harpsichord and any voice can play any
instrument-
Entering music is very simple. Select
the voice that you wish to use. Select the
length of the note and then place the
note in its position on the music sheet.
H vou have no musical knowledge at
all then my feeling is thai v<>u may nave
some problems entering your own
tunes. You could always try the 'suck it
and see' approach and try moving notes
around and listening to what results you
get. Thankfully there are a fair range of
tunes supplied on the Came Maker disk
ranging from William Tell to Happy
Birthday so there should always be
something to suit your game.
Sound maker is the part of the pack-
age that lets you play around with a 'real'
synthesiser. Again the program is under
joystick control and everything is easy to
alter. You can alter the type of wave
form that you are using, alter the attack,
decay, sustain and release of the volume
and put the sound through filters. If you
don't know what any of the above para-
meters are then I suggest that you just
play around, twiddle the knobs and see
what comes out. It is possible to link
together a number of sound to create
one effect. For example one sound may
be a falling tone, another may be an
explosion. Stick them together and
you've suddenly got bombs falling from
your aircraft.
And on it Goes
As I have previously said, this package
does have its limitations and obviously
you can't expect to get programs of really
high quality out of it. However, it is a
very good step up the ladder of design-
ing your own games. Even if you can't
program, the package will allow you to
create those masterpieces that you so far
have been unable to do anything about.
Not only does this package let you try
'ideas out but it will also allow you to
grasp what exactly goes into making up a
game so that when you eventually go it
on your own and try to write your own
programs in either Basic or machine
code you'll know exactly what you must
do.
Game Maker is an extremely well
thought out and easy to use package.
The documentation is simple enough so
that a fairly new computer owner could
be writing games in a few house. All that
is needed is a good imagination.
If you do have some ideas for games
then this is a package that you should
have in your collection.
16 bit numbers are the
subject of Allen Webb's
foray intro machine code.
ARE YOU READY FOR THE DELIGHTS
of 16 bit arithmetic. Even if you're not,
that's what I intend to deal with in this
article.
Up to now we've struggled within
the constraints of eight bits, which, as
you will have realised can become very
messy.
If we work with 16 bit resolution,
suddenly everything is simpler. You will
recall that to increase a value by one, we
can use the INC instruction. Consider
listing 1:
Listing 1
10 ASSEMBLE 90,1
90 REM *=$C000
100 REM INC 900
110 REM BNE LOOP
120 REM INC 901
130 REM .LOOP: RTS
140 REM |
150 FOR l=OTO300
160 SYS 12*4096
170 PRINTPEEK (901) *256+PEEK (900)
180 NEXT
This increments a 16 bit number
stored in locations 900 and 901. The low
byte, 900. is first incremented in line 100.
Line 110 checks to see if the low byte has
reached zero. If it has, we need to
increment the high byte. This will be
obvious if you consider what happens as
the low byte approaches zero:
Low byle High byte Combined
value
254
255
0
1
254
255
256
257
The combined value is the low byte
plus 256 times the high byte.
To reduce a memory location, you
may recall that DEC is used. Listing 2
does this for a 16 bit number:
10 ASSEMBLE 90.1
90 REM *=$COO0
100 REM LDA 900
110 REM BNE LOOP
120 REM DEC 901
130 REM .LOOP: DEC 900
140 REM RTS
150 REM |
160 FOR IOT0300
170 SYS 12*4096
1B0 PRINTPEEK(90ir256+PEEK(900>
190 NEXT
The principle of this routine is
slightly different. The first step is to
check whether the high byte needs
reducing. This is done in line llOwhich
checks for a zero value in the low byte.
Line 130 decrements the low byte every
time.
You will have noted that there is an
intimate relationship between the two
bytes in a 16 bit numbers. Before we
look at this, consider what happens
when you add two numbers in decimal.
If the two numbers add to above 10, you
carry tens. Remember? Consider this
sum:
19+
3
22
The computer works in the same way
in that if the result of adding two
numbers exceeds 255. you have a carry
to tell you about it. This effectively gives
you nine bits and the carry flag is used to
tweak the high bit. Addition with carry is
performed by the instruction ADC.
Imagine that you wish to add the
numbers 7 and 22. In binary these are:
%00000111 7
+ "nOOQIOnO 22
%00011101 29
The result is less than 255 so we can
still use an eight bit number. Consider
the addition of SE4 and $3A:
%1 1100100 SE4
+ %00111010_$3A
Suddenly, we have a number greater
than 255 and the second byte must
be used. The number is split as:
%00000001 and %00011110
In practical terms, how do we
perform this addition? Consider this
sequence of instructions:
CLS
LDA H SE4
ADC tt $3A
The first step is to clear the carry flag
— this prepares the way for the carry.
The accumulator is then loaded with the
number $E4. Lastly. S3A is added to the
accumulator with the carry flag set as
required. The result of this sequence is
to leave the accumulator holding 30
(binary 00011110) and the carry flag set.
Consider listing 3:
Listing 3
80 ASSEMBLE 90,1
90 REM *=$C000
100 REM LDA § 0
110 REM STA 902
120 REM STA 903
130 REM CLC
140 REM LDA 900
150 REM ADC 901
160 REM STA 902
170 REM LDA 902
180 REM ADC tt 1
190 REM STA 903
200 REM .LOOP; RTS
210 REM J
220 INPUT "A.B";A,B
230 POKE 900.A: POKE 901, B
240 SYS 12'4096
250 PRINTPEEK(902)+PEEK(903}*256
', 100011110 S11F
This adds two numbers in 900 and 901
and puts the result in the 16 bit number
in 902 and 903. Lines 100 to 120 clear the
16 number and lines 130 to 150 add the
two numbers. Line 160 stores the low
byte of the result and lines 180 to 190
store the carry in the high byte.
Subtraction is a simlar process albeit
slightly trickier to understand. The
relevant instruction is SBC (Subtract
with Carry) and again the carry flag is
used to convey information on the
result of the subtraction. This time, the
carry is cleared if the subtraction results
in an underflow (negative number).
Don't worry about the mechanism of
SBC this time, I'll deal with twos
complimenting and other mysteries in
the future. For now, simply accept that
SBC is the reverse of ADC. Consider
listing 4.
Listing 4
80 ASSEMBLE 90,1
90 REM *=$C000
100 REM SEC
110 REM LDA 901
120 REM SBC 900
130 REM STA 901
200 REM RTS
210 REM ]
220 INPUT "A,B";A,B
230 POKE 9O0.A: POKE 901 ,B
240 SYS 12*40%
250 PRINTPEEK(901)
The first slep. Line 100. is to set the
carry flag. The accumulator is then
loaded with the first number and Line
130 subtracts the second number. The
result is put into location 901. Try
messing about with the routine and see
what effect it has when you make B
larger than A.
Let us consider a useful example. The
first answer to your last month's
homework was rather tacky answers at
the end of this article. Listing 5 gives a
method using 16 bit arithmetic.
Listing 5
80 ASSEMBLE 90.1
90 REM *=$C000
110 REM LDA#0
120 REM STA $FB
130 REM LDA #04
200 REM STA $FC
210 REM LDY#0
220 REM .LOOP: I DA #42
230 REM STA ($FB),Y
250 REM INCSFB
260 REM BNE LOOP1
270 REM INC $FC
280 REM .LOOP1: LDA $FB
290 REM CMP#$E8
300 REM BNE LOOP
310 REM LDA $FC
320 REM CMP#7
330 REM BNE LOOP
340 REM RTS
350 REM |
The key to the routine is the 16 bit
number in locations $FB and $FC.
Instead of varying the Y register 10 index
this address, we will keep it set to zero
and alter the base address. Lines 110 to
200 set the address to the start of the
screen ($0400). We then zero the Y
register. The main loop puts an asterisk
at the currently addressed location
(Lines 220 to 230). Lines 250 and 270
increment the base address by one.
Lines 280 to 330 compare the base
address to 807E8 (the last address of the
screen) and loop back if it hasn't been
reached. Since we're dealing with 16
bits, two comparisons (Lines 290and 320
are required). This is clearly a more
satisfactory way of working.
Finally, Listings 6 and 7 give routines
for the addition and subtraction of two
16 bit numbers. One number is in
locations 900/901 and the other in
902/903. The resulting number is left in
locations 900/901.
Listing 6
80 ASSEMBLE 90,1
90 REM *=$C000
110 REM CLC
120 REM LDA 900
130 REM ADC 902
200 REM STA 900
210 REM LDA 901
220 REM ADC 903
230 REM STA 901
240 REM RTS
350 REM ]
360 INPUT "A,B"; A,B
370 POKE901,A/256:POKE900,A-PEEK
(901C256
380 POKE903,B/256:POKE902,B-PEEK
(903) '256
390 SYS 12-4096
400 PRINTPEEK(901)*256+PEEK(900)
Listing 7
80 ASSEMBLE 90,1
90 REM '=$C000
110 REM SEC
120 REM LDA 900
130 REM SBC 902
200 REM STA 900
210 REM LDA 901
220 REM SBC 903
230 REM STA 901
240 REM RTS
350 REM |
360 INPUT "A,B";A,B
370 POKE 901 .A/256: POKE 900.A-
PEEK(901)*256
380 POKE 903,B/256:POKE 902.B-
PEEK(903)*256
390 SYS 12*4096
400 PRINTPEEK(901)*256+PEEK<900)
I now want to briefly discuss an
alternative way of manipulating
numbers. Consider the binary number
seven:
%00000111
If the bits are shifted left one place
with the left-most bit lost and the right-
most bit set to zero, we get:
%00001110
or the number 14. What we have done is
multiply the number by two. Similarly, if
you shift the bits right one place, we
divide by two. The instructions ASL
(Arithmetic Shift Left) and LSR (Logical
Shift Right) perform these functions. To
multiply a number in location 900 by
two, you simply use:
ASL 900
to multiply by four, use:
ASL 900
ASL 900
and so on.
In fact, these instructions do not
lose the end bit. As they shift the bit is
pushed into the carry flag:
ASL
Carry *
LSR
0 »-
Carry
—
To allow you to make use of the carry
flag to manipulate 16 bit or larger
numbers, there are a further two
instructions:
ROR (Rotate Right one bit)
Carry
ROL (Rotate Left one bit)
These rotate the bit pattern but
incorporate the carry bit into the
number. Consider the pair of bytes:
BYTE 1
00000000
BYTE 2
10101010
170
Let us shift byte two left once and then
roll byte one left once. The left-most bit
of byielwo moves into (he carry flag and
is Ihen moved into byte one giving:
BYTE 1 BYTE 2
00000001 01010100 = 340
Voila! We've multiplied a 16 bit
number by two. The general methods of
doing this are:
Multiply by 2:
ASL Low byte
ROL High byte
Divide by 2:
LSR High byte
ROR Low byte
The shift and roll instructions operate
on the accumulator and in absolute,
zero page, absolute.X and zero page,X
addressing modes. We'll meet all of
these commands again so dont fear if
you haven't fully grasped them.
OK, pain time:
1) What sequence of instructions will
multiply an eight bit number by 256 (a
bit of a trick question this one)?
2) Write a simple routine to increment a
16 bit number of 40.
3) Starting with a 16 bit number in
900/901 (number A) and a 16 bit number
in 902/903 (number B), write a routine
which will perform the calculation
2*A+B/2 and store the result in locations
904/905.
Next time, more arithmetic
mysteries, the BIT instruction and a bit
of Boolean.
The second routine copies the top
ine of the screen to the 20th line.
10 ASSEMBLE 90,1
90 REM '=$C000
100 REM LDY #0
110 REM LDA tt 42
120 REM .LOOP: STA 1024.Y
130 REM STA 1274.Y
140 REM STA 1524.Y
150 REM STA 1774,Y
160 REM INY
170 REM CPY tt 250
180 REM BNE LOOP
190 REM RTS
200 REM |
10 ASSEMBLE 90,1
90 REM *=$t000
100 REM LDY #0
120 REM .LOOP: LDA 1024,Y
130 REM STA 1824.Y
140 REM INY
150 REM CPY #40
160 REM BNE LOOP
170 REM RTS
180 REM 1
Fool Note
Due to a problem with the printer used
for this series, the tt characters in
previous articles have been replaced by
a £ symbol.
We hope this won t happen in the
future and that it hasn't caused too
ntany headaches.
YOUR COMMODORE -
- CLASSIFIED ADVERTISEMENT - ORDER FORM
i
i i i
ii
Advertise nationally in these
columns for only 40p per word (min
charge 15 words). Simply printyour
message in the coupon and send
with your cheque or postal order
made payable to Argus Specialist
Publications Ltd to:
DUNCAN NEILSON, CLASSIFIED DEPT.
ASP LTD, 1 GOLDEN SQUARE,
LONDON W1
Tel: 01-437 0699
ADVERTISERS PLEASE ADD 15% VAT Tel "° (aay)
Please place my advert in YOUR COMMODORE for issues.
Please indicate no. of insertions required. Signed
YOUR COMMODORE
Lineage: 40p per word. r\ 1 wmm
(46p ind. VAT).
Semi display: £9.00 per single column centimetre (plus
VAT). Ring for information on series bookings/discounts
All advertisements in this section must be prepaid
Advertisements are accepted subject to the terms and conditions
printed on the advertisement rate card (available on request).
01-437 0699
EXT. 291
Send your requirements to:
ASP LTD, 1 GOLDEN SQUARE,
LONDON W1
SOFTWARE
REPAIRS
Till*
Commando
Games Design ei
ACE (C-161
ACE |Plu«4)
Airwolt
Steve Davis Snooker
Daley Thompson Slat Events .
Jump Jet
Games Pack I US games)
Games Pack " (IS games) ...
world Cup Foolball
Guiiwmg Falcon
The Boss
Am rog Favourite Four
C-16 Classics
C-16 Classes E
Gremlins
Sp * derma n' Hulk Pack
Atlantis
Grand Master Chess lC-i«r , .
Grandmaster Chess (Pius 4| .
Tom Thumb ,
S*ordol Oostmy
Xargo"s Re.enge
World Senes Baseball
Mead Alignment
CI 6/ PLUS 4 SOFTWAHF
RRP
795
.995
9 95
10 95
7 9f>
6 95
995
.5 95
5 9S
6 95
.6 95
695
.7 95
9 95
.9 95
7 95
.7 95
.6 95
8 95
8 95
695
695
.695
.795
.494
OUR
$.75
6.50
8.50
9.40
5.95
675
5.95
8 SO
4.95
4.95
5.95
5.95
595
IIS
8.50
6.75
6.75
5.95
7.75
7.T5
5.95
5.95
5.95
6.75
4.50
RRP
7.95
7 95
5 95
5 95
5 95
9 95
«»5
Tills
Beach Head
Defence 16
Dark Tower
Wizard and Princess . .
Classic Adventure
Super gran
Canoe Slalom , .
BUDGET SOFTWARE
Maslertrontc Titles (CI 99 each)
Formula I Simulator
Vegas Jackpot
Tulti Fruity
BUX Racers
Rock man
Squirm
Spoct'peoe
Big Mac
Mr Puniverse
Solar Titles (£2 99 eachl
Knock-Out
Mission Mars
Suicide Run
Ahen Attack
Cruncher
Quick Draw
OUR
6.75
6.75
4.95
4.95
4.95
850
5.95
Buy any 3
lor £5.25
Buy any 3
(or C7.95
Of
Buy any 2
to* £5.45
All prices include postage and packing in the U K
Payment with orde- by cheque or postal order please to
C-16 JOYSTICK £9 95
Plnase stale
which micro
JOTMAN SOFTWARE (Oepl V.C.I)
65 Heol Gwys. Upper Cwmtwrch. Swansea SA9 2XO. Tel: 0639-830934
DERBY DAY
C16/14 CBM64
£5.75 £6.75
'Visual Form Guide
'On Screen Action
•Realistic Betting
'Over 50 Horses
'10 Race Tracks
"4 Racing Distances
Bloomfield Software
PO Box 69, Blackpool FY2 9EX
SOCCER MANAGER Manage your
own team. 4 divisions. F A Cup.
transfers tactics etc
RACENIGHT — Run your own
racenighl. up to 10 players Exciting
horse racmg game
SOCCER QUIZ — Test your soccer
knowledge, hundreds of Questions.
Any one for £3.99, 2 'or £6.99. 3 lor £8.50
T. PALMER. 59, Old Park Road.
Shetlleld 8. Tel: 0742 749498
Genealogy Program
lor the 64 & 128 "FAMILY TREE" will
produce Pedigree Charts. Family
Group Records. Individual Files,
indexes. Searches ol Ancestors LDS
version available
£32.95 including air mail service.
GENEALOGY SOFTWARE
1046 Parkwood Ave, Sarnia.
Ontario, Canada N7V 3T9
ADVERTISE IN
YOUR COMMODORE
PHONE 01-437 0626
FOR DETAILS!
SOUTH EAST KENT SOFTWARE
Oept Y/C. PO Box 152. Orpington. Kent.
We slock lor Commodore.
Please slate
which model
Send S A E lor lull price list
COMMODORE 64. GAMES
Silent Service
Biggies
Super bow I
Ghosts W Goblins
Oladiatg/
Mugsys Revenge
Way ol the Tiger
Bomb Jack
Commando
Back to the Future
Winter Games
Summer Games II
BUSINESS ft EDUCATION
Superbase 64
Superscript
Home Accounts
Maillisis
Stock Control
VAT File
HARDWARE
Joysticks
Music Makers.
ALPHASOFT
SPECIAL OFFERS
Hardb.i i £6.99 Fair light £6.99
Psi-5 Trading Co Soperpowl £6.99
V
Law Of I he Writ
£699
Zmits £6 50
Z Zap Stivers
Bomb Jack £6.99
rop T<ttesi £6 99
AND MANY MORE 1
Cheque/P O to ALPHASOFT
115 Parsonage Road. Wtlhlngton.
Manchester M20 9WZ
IS A.E tor Pr.ce List P»P included)
Animal Records
maintained with "PEDIGREE" lor the
64 & 128 Produces Litter. Awards.
Breeding. Show, and individual records,
and Pedigree Charts £44.95 including
air mail service
GENEALOGY SOFTWARE
1046 Parkwood Ave, Sarnia,
Ontario, Canada N7V 3T9
IMPACT, for the Commodore
64/128 is a new monlhly com-
puterised magazine, on cassette
only. There's Reviews, Tips.
Quizzes, elc Plus a Free Text
Adventure. All this for only £2.00. If
you want to send in your own Letter.
Tips, Review, etc. then just send
C1.90 when you order impact,
impact 1 will be out in one month
Send Cheque/P.O.. made payable
to M. Sibthorpe, 18 The Stray.
Darlington. Co Durham DL1 1EP
64 SOURCE GENERATOR; an
advanced utility that will produce
source code from programs in
memory: imagine being able to
take any machine language pro-
gram and convert it to true source
code, complete with labels SAE
more into; C6.95 Tape: £8.95 Disk.
Cheques/POs to K. Otton. 19
Meadows Close. London E1 0 7DH
REPAIRS
COMMODORE REPAIRS
Commodore repairs by Commodore
approved engineers Repair prices
V* 20 modulator £8.05. Vic 20 £15.00
C8M 64 (rom £20.00 C2N fro-" £9.00 1541
horn £20.00 C64 psu £13.90. Spectrum
£16.50. Dragon £32.00. Electrons. Atari
For ^gogggif mrp*"*
36 Burlington Road, Burnham,
Bucks SL1 7BQ.
TRIDENT ENTERPRISES
LTD
Commodore 64 — £15. Vic 20
— £12.50. Spectrum —
£10.50, QL - £30. 1541 Disk
Drives — £20. and all Com-
modore systems. Send faulty
machine with note describing
fault to:
UNIT 7. WENTWOHTH INDUSTRIAL
COURT. GOODWIN ROAO. BRITWELL.
SLOUGH TEL: 0753 21391
Overseas enquiries welcome.
(Above prices are exclusive ol
parts and VAT).
When replying to
classified advertisements
readers are recommended
to take steps to protect
their interest before
sending money.
LONDON
COMPUTER REPAIR
CENTRE
Spectrum. Commodore. BBC.
Atari. Amstrad etc
Low cost repairs from £12.00
Collection & delivery optional
Used Micro's boughi. sold,
exchanged.
Call NIGEL: 01-863 7166
MICRO SUPPORT
Unit 3. 15 Springfield Road.
Harrow, Middx HA4 10F.
The &
PRESS COMMODORE
REPAIRS!.
WHY PAY HIGH
FIXED' PRICES
FOR PROFESSION AlISM - "Of the
repair (ompanm Sinclair Uvr woke
io MAMCOMP setred the MOST
PROFESSIONAL wren it can* to adv«
and a tteipfui attnuW" AUG 85
why delay - our estimates are
free ano without obligation if
you 00 not uke our estimate
we will return tke computer
and refund the postage
incurred!
MANCOMPltd
(Dept YC5)
Printworks tarte. Levenshulme.
Manchester MI93JP
OPEN MOM Sfl BamtpTpn
|06t 224 WtMH
PROM-64
EPROM programmer for8K. 16K.
ZIF socket. Vpp generator &
software on tape £34.75
64-CARTndqe. 2 ■ 8K E5.«S
EPflOMS QTY 1-10. 2716- 128 £2.99
DHOBI-2 EPROM eraser £22.95
UK • 15% VAT
Cambridge Microelectronics
One Milton Road, Cambridge
CB4 1UY
Tel: (0223) 314814 Tlx: 81574
SPORT
HORSE FORM
COM M/12S The ultimata in Horseracing
why pay CS tor one-ofl time
ratings when you can continually produce
your own Program holds data ror all flat
racing tracks in Britain and Ireland
Get The Edge. Get Horse lorm
C7.9S cassette CheouosPO to
SEESAW SOFTWARE.
74 Fleetham Gardens. Lower Eartey,
Reading RG6 48 Y.
WARNING NOTICE
Advertisements placed in this magazine are to be in strict compliance with our standard conditions (copies of which
conditions are available on request) and on the clear understanding that the advertiser warrants that his
advertisement(s) does not infringe any copyright or condition of sale of any interested party in the advertised
product.
Further, the advertiser indemnifies the proprietors of this magazine in respect of costs, damages, or any other claims
brought against them as a result of legal action arising from the publication of the advertisement.
Any breach of these terms or the said conditions may result in prosecution of the advertiser by the proprietors.
FOR SALE
HARDWARE
FOR SALE
GADGET 64 £6.95
Programming tool kit tor CBM64
specially designed lor tape users.
Provides. RENUMBER (inc. GOTO.
GOSUB). APPEND. DELETE, and a
special PARK facility (allows two pro-
grams in memory lor editing, append*
ing. etc i
Serd your name, address & PO cheque
for £6 95 (P&P free) to:
J&J GILMOUR LTD
Depl. YCS86. 4 Copsr Close. Li is.
Hampshire GU33 7EW. England.
Tel: 0730-893430
DISCS
!!! FREE DISKS !!!
For every 1 0 ordered we supply 1 1
SS/DD £10.99 SS/QD £13.19
DS/DD £13.19 DS/QO £15.39
S/Side £27.49 D/Side £32.99
All prices INCLUDE VAT
Delivery is FREE
All disks guaranteed tor 12 months
Cash with order please lo
HOLLBARN Ltd., Dept CM1,
8 Alexander Road. Slotfold.
Hltchin. Herts. SG5 4NA
GENERAL
BUY OR SELL your unwanted
software, books, and hardware We
put you directly in contact with
each other in your area. Details:
Second Hand Computer Sales
Agency 38, Bowling Altey Walks,
Dorchester. Dorset Tel (0305)
64849 (24 hrsj.
WORD DEALER, an exciting
word game for up to four
players. Four play levels too!
Send cheque/P.O. £3.25 to R.
Porter, Woodside House, Abbey
Road, Scone. Perthshire. PH2
6LL (C16 and plus/4).
* BACK-UP-SYSTEMS FOR CBM-64 & VIC-20 *
Trie BACK-UP-BOARD Mk. 1 is the fastest, and easiest way lo back up your tape
programs. With this board you can connect a second C8M cassette deck to your
computer. You can copy a program on the second deck while the original loads horn
the first. You can back up all last loaders, data hies, etc BACK-UP-BOARD Mk i
£10.00 Inc. P&P.
BACK-UP-BOARD Mk 2 This new version ot our famous BACK-UP-BOARD is now
proving so popular it is outselling our original Mk 1 This new board now works two
ways Switched to NORMAL it operates as the Mk 1 Switched to GENERATE . 64'
owners can use our special transfer software to regenerateacopy of a program on the
second deck as it loads from the first This method can produce a betler Quality copy
than the original BACK-UP-BOARD Mk 2 & Software £14 50 mc P&P Conversion
service Return your Mk. 1 Board, if purchased from us. to be modified to Mk 2 for
£450 including software & P&P
AZIMUTH HEAD ALIGNMENT TAPE by INTERCEPTOR tor 64 Use this test tape
with your '64' lo adjust the heads ol your decks to make a perfectly matched pair. Full
Instructions and screwdriver supplied. £8 50 mc. P&P.
ROM SWITCH /RESET BOARD Fit this board in the expansion port of your 64' and
you can reset ALL programs. Resets programs that a standard reset switch can't A
socket for a 2764 8K eprom is also fitted Fuji instructions supplied £6 95 inc. P&P
Please send SAE for more details of the above products. Send your cheque PO to:
TURBOTRONIC
46 Ripon St., Parkinson Lane. Halilax, West Yorkshire HX1 3UG.
Tel: (0422) 52020
(Europe add 50p outside Europe add £1.50)
FOR HIRE
HIRE HIRE
STAFFS COMPUTER LIBRARY
CBM 64 OWNERS
Join the friendly Library. We give you what you want, (f a title
is not on our list then we will get it, if it's still available.
(Games only!
All the latest Titles
• Full 7 Days Hire
• Low Hire Cost. From 75p
• Up to 4 Games per week
• All games original
• Lots of American Titles
• Low Hard and Software prices
• Membership ONLY £5.00
Free m/c Monitor on joining
Send your cheques/postal orders payable to:
STAFF COMPUTERS
The Newlands, Greensome Lane. Stafford
VIC-20/CBM-64
SOFTWARE HIRE
Free Membership. Hundreds of Titles
to choose from Send SAE lor your
Free Hire Kit:
VSH (YM). PO BOX 65. NOTTINGHAM NG1
COMMODORE 64 cassette
library. Hire latest games and
educational software, only one
price £1 50 per cassette 7 days
hire. Delails SAE please: C.C.L.
19 Darrell Way. Abingdon. OX14
1 HQ.
ADVERTISERS PLEASE NOTE:—
COPY DEADLINES FOR FUTURE ISSUES OF YOUR COMMODORE
ARE AS FOLLOWS:- SEPT ISSUE - 24th JUNE
OCT ISSUE - 28th JULY. NOV ISSUE - 26th AUGUST
WE WORK WELL IN ADVANCE SO START THINKING NOW!
MOONRAKER £7.95
Space Flight Gam* tor the CBM64
Features: Animated displays of flight
over surface craters Phaser Ray to
shoot ahen craft score and flight indi-
cator;. Sophisticated game using
advanced display techniques
Send your name address & PO cheque
for £795 (P&P free) to:
J&J GILMOUR LTD
Dept. VC586. 4 Copse Close. Llss.
Hampshire GU33 7EW. England
Tel: 0730-693430
HARDWARE
Super Breaker
Back-Up Board
For the Commodore 64. CBM 120 and
VIC-20 When a second CBM type cas-
sette unit is connected to the Doard it
will make security bach-up copies ol
cassette based software, including
Turbo/Fast Loaders. Base and/or
Machine Code and Oata Files No
additional software is needed Very
User Friendly, the back-up copy is
made on the second cassette while the
original is loading on the first Price at
£6 95 Plus P&P
RESET CARTRIDGE for CBM 64 This
cartridge will reset all. yes all. memory
resident programs Including all pro-
grams where standard resel switches
fail Price £7 95 - P&P
P&P 55p UK (Europe add £1 00. else-
where add £2 00) Send cheque'postai
order, or a stamp tor details to:
C. Kent. 26 Northcape Walk,
Corby, Northants. NN1S 9DQ
For enquiries telephone (0536) 742622
HOME ACCOUNTS
Put your house in order!
Probably home computing's
best use! Comprehensive
coverage ol bank accounts.
Credit cards. HP in-built
accuracy check. Records all
transactions. Projects cash-
flow for any period ahead.
Available for Complete Com-
modore Range. £8.45 or free
details from:
Discus Software
Freepost
Beach Approach
Brixham TQ5 8BR
Tel: 08045 55532
Why pay repair bills
when you can solve or
prevent most of your
1541 and 1570 disk
drive problems
for only £19.95
Every time you use your
disk drive the protection
on your software bangs
your playing head,
eventually knocking it out
of place. Now with our
very easy to use Magic
Disk Kit with a clear book
of tips you can remedy
head alignment faults
and give simply
maintenance to your
machine to give better
performance and longer
life.
Available from good
computer shops or:-
Robtek Lid. Unti4, Islewwih Business Complex
St John's Road, Isleworih, Middx. TW7 6NL
Telephone: 01-847 4457
WELCOME TO THE WORLD
COMMODORE
Maintenance, Service, Support, Training
from your No 1 ^©[^[^©[DOlSlI dealer
HARDWARE
»C128D with Monitor & Printer
MPS 1000 NLQ.
SOFTWARE
ACCOUntS (cash book & VAT) g W/P,
Database. Spreadsheet,
all for only £879.00
C64 Compendium 1 89.00
CI 28 Computer 265.00
C128D inc disk drive 489.00
C128D inc d/d, Monitor. .585. 00
1 570 S/S disk drive 1 95.00
1571 D/S disk drive 265.00
1901 Colour Monitor 285.00
1900 80 Column 145.00
Green/Amber Screens 95.00
Cable for above 10.00
C128 40/80 cable 14.95
DPS 1 101 Daisy Wheel
MPS 1 000 NLQ inc.T/F
295.00
269.00
Superbase 64. .59. 00 I
Superbase 128 79.00
Superscript 64. .49. 00
S/Script 128. ...74.00
S/Script + S/Base 64. .99. 00
S/Script + S/Base 128.. 139.00
[comprint interface .61 .99||bek interface. 69.00
Miracle modem.... 1 1 3.25 1 CBM modem. ...75.00
MS2000 Mouse.. 69.90
PHONE for FULL LISTS
E^KIMflAMflOG Computer Centres'
48 Junction Rd Archway London N19 5RD
238 Musvell Hill Broadvay London N10 3SH
Listings will be much
COMMODORE LISTINGS ARE RATHER
well known for the horrible little black
blobs that always abound. Unfortunately
the graphics characters which are used to
represent graphic and control characters
do not reproduce very well and they are
also difficult to find on the Commodore
keyboard.
In future all control and graphics
commands will be replaced by a mnemonic
within square brackets. This mnemonic is
not typed out as printed in the magazine
but rather the corresponding key or keys
on the keyboard are pressed. For example
|RIGHT] means press the cursor right key,
you do not type in [RIGHT]. All of the
keywords, what keys to press and how
they are shown on the screen are shown
below.
Any character that is accessed by pressing
shift and a letter will be printed as
[Stater].
|SA] shift and A
[S+] shift and ♦
Any character that is accessed by
pressing the Commodore key and a letter
will be printed as (Getter)
[CA] Commodore and A
[C+] Commodore and +
IC11 Commodore and 1
Mnemonic Symbol what to press
[RIGHT]
[LEFT]
[UP]
[DOWN]
[Ft]
[F2]
[F3]
[F4]
left/right
shift left/right
Shift & up
/down
up/down
shift & f1
<3
shift & f3
LISTINGS
If any characters are repeated the
mnemonic will be followed by a number.
This number is how many times you
should enter the character. Any number
of spaces over one will also be
represented in this form
[RIGHT10] press cursor right 10 times
[C+10] press Commodore and + 10
times
[SPC10] Press the space bar 10 times
Any other characters should be easily
recognisable for example CTRL-N means
press CTRL and N and LEFT-ARROW
means press the left arrow.
Any number of mnemonics can be
enclosed in brackets for example
[SA10,SPC10,SA10]
means type 10 shift A's 10 spaces and
another 10 shift A's.
Mnemonic
[F5]
Symbol what to press
[F6]
[r-7]
[F8]
[CLEAR)
[HOME]
[RVSON]
[RVSOFF|
f5
shift & f5
f7
shift & f7
shift & CLR
/HOME
CLR/HOME
CTRL & 9
CTRL & 0
Mnemonic Symbol what to press
[BLACK]
[WHITE]
[RED]
(CYAN]
[PURPLE]
[GREEN]
[BLUE]
(YELLOW]
CTRL & 1
CTRL & 2
CTRL & 3
CTRL & 4
CTRL & 5
CTRL & 6
CTRL & 7
CTRL & 8
4
LEGIONNAI
misiio
messages to the garrison headquarters.
As you travel through the scrolling landscapes,
you will be under constant fire from the tribesmen bent on
reaching the fort. You will have to use your machine gun with great ski
to get past them. There are seven separate areas of scrolling landscapes before
the fort can be reached and each area requires increasing skill.
C16/PLUS 4 £5.95
HMM tW "<
o ♦ ©
BONGO CONSTRUCTION SET
Bongo Construction Set is a hilarious family game. Bongo
■ trying to reach the princess, hotly pursued by monsters.
He uses ladders, slides, transporters, lifts and trampolines
lo elude his pursuers but they seem to know his moves
before he makes them. There are six stages with five skill
levels. Vou can design your own stages using the joystick
end save them on cassette or disk to play later.
C16/PLUS4 £5.95
SPACE PI LOT
Space Pilot, the legendary hero, is under constant attack
by alien ships with one aim - the destruction of his craft.
The alien craft attack singly or In battle formation.
Equipped with heat seeking missiles, their attack is deadly
as well as relentless. Space Pilot with full 360 degrees
scrolling and four stages, demanding ever increasing skills
retains all aspects of a smash hit on CBM 64.
C16/PLUS 4 £5 95
THAI BOXING
A unique combination of
the noble art of Boxing
and skills of Martial arts.
Three stages of increasing
skill.
16/PLUS4 £5.95
ORTHCOMUMG ANCO RELEASES
WATER SPORTS
Water Skiing and Shooting the Rapids
C16/PLUS4 £6.95
WATER SPORTS PLUS
Enhanced version for PLUS 4 owners or C16 with 16K expansion includes an
wtra event. Power Boat Racing. £7.95 PLUS 4/C16* 16K.
CHAMPIONSHIP TENNIS
A Tennis Simulation quite capable of
creating the drama of the Centre
Court. Available June.
C16/PLUS 4 £5.95
MICRO TEXT
Ideal for home user. Facilities include
Centring and full Left and Right
justification.
£7.96 (Cess). £10.95 (Disc).
MICRO BASE
An easy to use data base with full sort
facilities. Ideal for keeping track of
records or stamp collection. Club secretaries will find it very handy for
storing names and addresses of members. Designed to print self-adhesive
■abets. Selected names and addresses can be selected for printing.
C7.95 (casst. £t0.9S (Date).
C16 and PLUS 4 REFERENCE BOOK
The book has been specially written for ANCO'
It is a comprehensive guide for a beginner and a
professional programmer. June.
ANCO SOFTWARE. 4 WEST GATE HOUSE, SPITAL STREET, DARTFORD, KENT. DAI 2EH.
Telephone: 0322 92513/92518.
Mail Order: Payment by Cheque, P.O., Visa or Access. 24 Hour Credit Card Service: 0322 522631.
Choosing the right computer
is a good start — but can you
find the right software?
a
viipfRSOFT
MUSIC MflSTEB ^busicalc
At SUPERSOFT we're very conscious of the
fact that people who spend several hundred
pounds on computer equipment are looking
to do rather more than play Space Invaders
Financial planning is a rather grand name
for something you've been doing all your life
— making ends meet! Perhaps if Mr
Micawber had used BUSICALC he would
have been able to balance the books a little
better.
For home, club or small business use
BUSICALC 1 should pay for itself in no time at
all; for larger companies we recommend
BUSICALC 3. one of the few really valuable
programs that you can learn to use in a day
Although your Commodore 64 is a power-
ful musical instrument you need to be a
pretty good programmer to understand how
it all works Unless, of course, you buy MUSIC
MASTER!
To use MUSIC MASTER requires no prior
musical knowledge, though in the hands of
an experienced musician it will prove an
invaluable tool You don't need to know the
first thing about programming either! MUSIC
MASTER is the musical equivalent of a word
processor, remembering the notes you play
and allowing you to replay and edit them as
you wish
INTERDICTOR PILOT is a space flight
simulator. Nowadays simulators are widely
used to train pilots and astronauts because -
to be frank - it's a lot cheaper (and safer)
than the real thing'
Imagine, "if you will, life in the 22nd
century space travel is commonplace, and
on the outskirts of the galaxy the first war
between civilizations is being fought. A short-
age of trained pilots has prompted the Feder-
ation to develop a computer simulation that
allows raw recruits to gain experience with-
out paying for their mistakes with their lives
With the aid of your Commodore 64 you too
can learn to pilot the Interdictor Mk 3 craft
But be warned - this is no game!
SUPERSOFT, Winchester House. Canning Road.
Wealdstone, Harrow. Middlesex HA3 75J
Telephone: 01-861 1166
Other SUPERSOFT products include the
MIKRO ASSEMBLER cartridge, the only
assembler that's ideal for beginners yet pow-
erful enough for the professional (most of
our competitors use it!). The VICTREE cart-
ridge adds dozens of commands to Basic
including toolkit aids and disk commands; or
on disk there's MASTER 64, a really com-
prehensive package for the keen prog-
rammer
Of course, we do also publish games
programs, and with classics like STIX, QUINX
and KAMI-KAZE m our range we are one of
the market leaders But we most enjoy
coming up with the sort of programs that are
going to be in use for months and years, not
hours and days - the sort of programs that
make you glad that you bought a computer -
and glad that you bought SUPERSOFT'
You won't find SUPERSOFT products on
the shelves of your local supermarket But
most specialist shops stock titles from our
extensive range (and are prepared to obtain
other programs to order). However you can
also buy direct by sending a cheque (pre-paid
orders are post free!), by calling at our
offices, or over the telephone using your
ACCESS card